1654번 - 랜선 자르기
첨부한 소스코드는 오답이라고 나오고 47~52번 라인의 조건식을
if (sum < N) end = middle - 1; else if (N <= sum) start = middle + 1;
이렇게 수정하니까 정답처리가 되네요. 무슨 차이점이 있나요?
어떤 길이로 잘랐을 때 N개의 랜선을 만드는 경우는 단 한가지가 아닐 수 있습니다.
else if(N<=sum) start = middle+1; 을 해서 최대한 길게 잘랐을 때까지 N개 이상의 랜선을 만드는 것이고
else if (sum==N) return middle은 잘랐을 때 N개가 되면 바로 return 해버리는 것이라, N개 이상으로 자를 수 있는 최대 길이라고 보장할 수 없습니다.
댓글을 작성하려면 로그인해야 합니다.
qlsdud0604 2년 전
첨부한 소스코드는 오답이라고 나오고 47~52번 라인의 조건식을
if (sum < N)
end = middle - 1;
else if (N <= sum)
start = middle + 1;
이렇게 수정하니까 정답처리가 되네요. 무슨 차이점이 있나요?