seanrocket17   7년 전

어떻게 풀었냐면요 k개의 숫자를 입력받아서 이 k개의 숫자를 어떤수 x로 나눈 몫의 합이 n이 되는 것중에서 가장 큰 x를 출력하는 방식입니다. 문제에서 2^30 - 1까지 가능하다고 했기에 bin_srch로 0부터 2^30 - 1의 숫자중에서 찾았습니다. 왜 작동이 중지될까요? 고수분들 도와주세요.ㅠㅠ

etaehyun4   7년 전

처음엔 s, e 가 int범위이지만, 도중에 s + e 가 int범위를 벗어나서 이상한 값이 될 수 있습니다.

etaehyun4   7년 전

1. 만약 랜선들의 길이가 다 2^31-1 이고 길이를 1로 하면 sum 이 int범위를 초과할 수 있습니다. long long으로 쓰일 곳을 조금 더 찾아보세요.

2.  bin_srch(mid - 1, e, target); mid + 1이 되어야 할 것 같습니다

seanrocket17   7년 전

시간 초과가 나네요.....

etaehyun4   7년 전

왜 무한 루프가 생기는지 조금 더 고민해보시면 좋을 것 같습니다.. 

예를 들어, s = 3, e = 4이면 mid=3이 되고 sum>target인 경우 (3, 4)가 다시 호출됩니다

seanrocket17   7년 전

감사합니다....

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