jaewonahn1234   2년 전

아무리 생각해도 제 논리가 맞는 거 같고 여러 테스트 케이스를 넣어봤는데도 맞게 나왔는데 틀렸다고 뜨는데 정말 알 수가 없어서 지푸라기 잡는 심정으로 여기다가 올려봅니다.. 

convert7342   2년 전

음..

하나하나봅시다.

자를 랜선 단위의 길이는 0이여서는 안됩니다.

따라서 64번째 줄, binary_search 함수의 첫 번째 인자로는 0이 아닌 1이 들어가야합니다.

이에 따라, mid 값의 자료형은 int형이 아닌 long long 형이 들어가야합니다. start가 1이고, max가 2^31-1이라면, (start + end)를 하는 과정에서 자료형의 범위가 초과되기 때문이죠.

계산 순서를 변화시키는 방법도 있는것으로 제가 알고있긴 합니다. (start+end)/2 라면 end를 2로 먼저 나눈 뒤 나머지 연산을 진행하는 방법이라던지..

10번 줄의 Cnt 변수는 long long 자료형을 가져야합니다.

만들 수 있는 랜선의 갯수를 나타내신 것으로 보이는데, 21억 랜선이 10개있고 이것을 1 단위로 자른다면 당연히 초과하겠죠?

보이는 문제점은 이정도로 보입니다.

convert7342   2년 전

+

이에 따라, mid 값의 자료형은 int형이 아닌 long long 형이 들어가야합니다. start가 1이고, max가 2^31-1이라면, (start + end)를 하는 과정에서 자료형의 범위가 초과되기 때문이죠.

mid값의 자료형이 아닌 start와 end의 자료형입니다.

jaewonahn1234   2년 전

해결했습니다. 감사합니다! 

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