lg970325   7년 전

어느 부분에서 틀렸는지 알려주세요..

xornrbboy   7년 전

1) min을 일단 초기값을 1로 두는 게 좋을 것 같습니다. middle이 0이 되서 divide by zero (런타임에러) 가 뜰 수 있습니다.

2) count == n일 때 break; 하는 것이 아니라 이분 탐색을 계속 진행해야 합니다. 예를 들어 랜선이 200 100 50 이렇게 있을 때 7개로 자르는 것이 목표일 때, 49로 잘랐을 때도 7개, 50으로 잘랐을 때도 7개가 나옵니다. 즉 같은 갯수로 자르는 것도 여러 경우의 랜선 길이 값이 나올 수 있으므로, 이분 탐색을 계속해서 최대의 길이를 찾아내야 합니다.

lg970325   7년 전

지적 감사합니다. 

그런데 제가 최대를 구하기 위해 아래와 같이 소스를 while문 아래에 붙였습니다...

그 부분이 잘못 된 건가요?

pse1202   7년 전

한가지 엣지 케이스는 N으로 딱 나오지 않는 경우일 거 같네요

ex)
2 1000

501

502


이러면 2일 땐 안되고 1일 때 만 되는데, 1 인 경우엔 총 1003개가 나오죠.

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