wodus0129   3년 전

다음과 같이 작성했는데 시간초과가 발생합니다.

무엇이 문제인가요?

lambda   3년 전

count의 시간복잡도는 O(n)입니다. 길이만큼 시간이 걸리죠. 그런데 저렇게 코드를 짜면 길이가 n이면 count를 n번 쓰게되니 결국 시간복잡도가 O(n^2)이 됩니다. 길이가 1일때 시간이 1걸리던것이 길이가 100이면 시간이 100^2=10000,길이가 1000000 이면 시간이(10^6)^2=10^12배 걸립니다.

또 반복문에서 word.count(word[i])가 계속 반복해서 쓰이는데 따로 저장을 안해두니 count가 나올 때마다 다시 셉니다. wordnum=word.count(word[i])처럼 한번만 계산해두고 wordnum을 쓰는게 좋을 것 같네요.

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