포켓몬이 최대 10만개, 질문이 최대 10만개일때
연산이 제일 많이 필요한 케이스는 10만개의 질문이 모두 맨 뒤에 있는 포켓몬의 이름인 경우겠죠 (반복문에 break가 안걸리니까요)
그럼 이때 필요한 대충의 연산 횟수를 계산해 보면
10만 * 10만 * 20(글자수)가 되겠네요. 대략 2천억번의 연산이 필요하네요. 요런 알고리즘 문제 푸실때는 1억번의 연산이 1초 걸린다고 생각하시면 됩니다.
즉 현재 푸신 방식으로는 최악의 경우에 2천 초가 걸리므로 시간초과가 나온겁니다.
이를 해결하는 방법은 매 질문마다 빠르게 찾으면 되겠죠?
그 방법은 이분 탐색에 대해 공부해 보시면 도움이 될 것 같습니다
qorrhktk66 3년 전
배열이나 리스트를 쓰지 않고는 문제를 풀 수 없을 것 같습니다.
근데 검색 속도는 배열이 리스트보다 빠르다고 알고 있어서 배열을 사용했는데 시간초과가 계속 나네요..
숫자인지 문자인지 구분할 때 쓴 if문은 원래 스위치로 써서 case 0~9, 디폴트로 나눴는데 그때도 시간초과가 떳구요.