1920번 - 수 찾기
질문글에 올라온 반례들 다 넣어봤는데 맞게 나오고
정직하게 이분탐색 했는데 자꾸만 시간초과가 나는 거 봐선 어딘가에 무한루프가 생기는 반례가 있는거 같은데 돌아버리겠습니다
혹시나 해서 cin을 scanf로 바꿔봤는데 똑같고요
이분탐색에서 pow 를 사용하는게 잘못된것 같습니다.
참고로 초기에 tnum 을 log(N) 정도로 잡고 tnum--; 가 되어야 할것 같습니다.
아예 pow랑 tnum 버리고 양끝 쪽 인덱스를 나누게 고쳤습니다. 예제들 다 맞게 출력되고요
이 방법이 더 빠를 것 같은데 시간 초과 나는건 똑같네요..
도대체 채점할땐 얼마나 큰 수를 집어넣는건지..
알고리즘이 문제인 줄 알고 계속 들여다봤는데 출력을 printf로 바꾸니 맞았네요..
허탈하네요ㅋㅋ
cin, cout, endl 이 느려서 그렇습니다.
cin, cout 를 사용하지 않던지, 아니면 최적화를 해줘야 합니다.
댓글을 작성하려면 로그인해야 합니다.
darkdulgi 2년 전
질문글에 올라온 반례들 다 넣어봤는데 맞게 나오고
정직하게 이분탐색 했는데 자꾸만 시간초과가 나는 거 봐선 어딘가에 무한루프가 생기는 반례가 있는거 같은데 돌아버리겠습니다
혹시나 해서 cin을 scanf로 바꿔봤는데 똑같고요