qlsdud0604   2년 전

첨부한 소스코드는 오답이라고 나오고 47~52번 라인의 조건식을 

if (sum < N)
     end = middle - 1;
else if (N <= sum)
     start = middle + 1;

이렇게 수정하니까 정답처리가 되네요. 무슨 차이점이 있나요?

pmn0001   2년 전

어떤 길이로 잘랐을 때 N개의 랜선을 만드는 경우는 단 한가지가 아닐 수 있습니다.

else if(N<=sum) start = middle+1; 을 해서 최대한 길게 잘랐을 때까지 N개 이상의 랜선을 만드는 것이고

else if (sum==N) return middle은 잘랐을 때 N개가 되면 바로 return 해버리는 것이라, N개 이상으로 자를 수 있는 최대 길이라고 보장할 수 없습니다.

댓글을 작성하려면 로그인해야 합니다.