1620번 - 나는야 포켓몬 마스터 이다솜
시간초과가 자꾸 나는데 왜 그런지 잘 모르겠습니다.
우선 제가 한 방식은 총 2개의 배열을 만들어서 숫자가 입력되었을 때와 문자열이 입력되었을 때 각기 다른 배열을 사용하도록 만들엇습니다.
숫자가 입력됐을 때 사용하는 배열의 경우 입력받은 그대로 사용하여 접근하는데 O(n)의 시간이 걸립니다.
문자열이 입력되었을 때 사용하는 배열의 경우 입력을 다 받은 후 정렬을 한번 진행하게 됩니다.( 정렬에 소요되는 시간 O(n log n) )이후 바이너리서치를 사용하여 찾게 됩니다. O(log n)시간 복잡도가 O(n log n)이고 입력이 그렇게 크지 않은데 왜 시간초과가 발생하는지 잘 모르겠습니다. ㅠ입력과 출력은 모두 scanf 와 printf를 사용했습니다.도와주시면 감사하겠습니다.
seek함수를 잘못 구현했습니다.
댓글을 작성하려면 로그인해야 합니다.
pch6789 4년 전
시간초과가 자꾸 나는데 왜 그런지 잘 모르겠습니다.
우선 제가 한 방식은 총 2개의 배열을 만들어서 숫자가 입력되었을 때와 문자열이 입력되었을 때 각기 다른 배열을 사용하도록 만들엇습니다.
숫자가 입력됐을 때 사용하는 배열의 경우 입력받은 그대로 사용하여 접근하는데 O(n)의 시간이 걸립니다.
문자열이 입력되었을 때 사용하는 배열의 경우 입력을 다 받은 후 정렬을 한번 진행하게 됩니다.
( 정렬에 소요되는 시간 O(n log n) )
이후 바이너리서치를 사용하여 찾게 됩니다. O(log n)
시간 복잡도가 O(n log n)이고 입력이 그렇게 크지 않은데 왜 시간초과가 발생하는지 잘 모르겠습니다. ㅠ
입력과 출력은 모두 scanf 와 printf를 사용했습니다.
도와주시면 감사하겠습니다.