wjddms0114   4년 전

1920번 문제가 이분탐색 문제라고 하여,

직접 binary search 함수를 만들어서 코드를 짜봤는데 계속 런타임 오류가 발생합니다.

binary search 함수는 원하는 수를 못 찾으면 범위를 반씩 줄여서 진행하니까(logn)일 것 같은데, 아닐까요?

cin.tie(0)도 해서 cin 함수 때문에 발생하는 런타임 오류는 아닌 것 같은데,

어느 부분에서 시간을 더 단축시켜야할지, 어떻게 단축시켜야할지 전혀 감이 오지 않습니다.

조언 부탁드립니다.

djm03178   4년 전

런타임 에러는 시간이랑은 전혀, 아무런 상관도 없습니다. 0.00001초만에도 런타임 에러가 나게 만들 수 있습니다. 그저 프로그램이 해서는 안 되는 행동을 수행하기만 하면 되기 때문입니다. 시간이 오래 걸려서 나오는 결과는 시간 초과밖에 없습니다.

10, 13번째 줄에서 리턴을 안 하기 때문에 verify 함수가 아무런 값을 반환하지 않아서 런타임 에러가 날 뿐입니다.

djm03178   4년 전

그와는 별개로 시간이 오래 걸리게 하는 요소가 있기는 한데, 바로 cin.tie(0)을 쓴 게 아무 의미가 없게 만드는 endl이 범인입니다. '\n'을 써야 그걸 한 의미가 있습니다.

wjddms0114   4년 전

아, 감사합니다! 10,13째줄에는 재귀적으로 실행하려고 저렇게 했는데, 그러면 리턴 값으로 함수를 재귀적으로 호출해야 하나요?

djm03178   4년 전

네, 각각 앞에 return만 붙이면 됩니다.

wjddms0114   4년 전

네, 해결되었습니다. 감사합니다!!!

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