pch6789   4년 전

시간초과가 자꾸 나는데 왜 그런지 잘 모르겠습니다.

우선 제가 한 방식은 총 2개의 배열을 만들어서 숫자가 입력되었을 때와 문자열이 입력되었을 때 각기 다른 배열을 사용하도록  만들엇습니다.

숫자가 입력됐을 때 사용하는 배열의 경우 입력받은 그대로 사용하여 접근하는데 O(n)의 시간이 걸립니다.

문자열이 입력되었을 때 사용하는 배열의 경우 입력을 다 받은 후 정렬을 한번 진행하게 됩니다.
( 정렬에 소요되는 시간 O(n log n) )
이후 바이너리서치를 사용하여 찾게 됩니다. O(log n)

시간 복잡도가 O(n log n)이고 입력이 그렇게 크지 않은데 왜 시간초과가 발생하는지 잘 모르겠습니다. ㅠ
입력과 출력은 모두 scanf 와 printf를 사용했습니다.

도와주시면 감사하겠습니다.

pch6789   4년 전

seek함수를 잘못 구현했습니다.

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