작성
·
269
·
수정됨
0
n,m = map(int, input().split())
data = list(map(int, input().split()))
sum = 0
cnt = 0
data.sort()
lt = 0
rt = len(data)-1
print(data)
while lt<=rt:
if data[lt] + data[rt] <= m:
cnt += 1
lt += 1
rt -= 1
else:
rt -= 1
print(len(data)-(cnt*2) + cnt)
print는 전체 data갯수에서 2명끼리 탄사람들의 개수를 뻬면
보트를 혼자타는 사람들의 갯수가 나오겠다고 생각했습니다.
그다음 2명이서타는 cnt의 개수를 더해주면 답이 될것이라고 생각하였는데 답이 되지않습니다.
왜틀린걸까요?
답변 1
0
안녕하세요^^
답이 틀리게 나오는 입력을 가지고 스스로 디버그 해보세요. 이런 건 스스로 찾아야 실전에 강해집니다.
힌트를 드리자면 마지막 사람이 한 사람 남아 있을 때 즉 lt와 rt가 같을 때 예외가 발생할 수 있습니다.
디버깅을 해보았습니다. 오ㅐ 오류가 발생하는지 모르겠습니다.
강의 예제도 보면 lt와 rt가 같을때 종료되는 것을 알 수 있는데 결과는 잘 나옵니다. 하지만 예제3번과 5번이 잘못됐다고 나오는데 어느부분이 틀린지 모르겠습니다 ㅠㅠ