purpose   3년 전

안녕하세요.

visitedAlpha로 방문한 알파벳을 저장하였습니다. 

3가지 방법으로 해보았는데 1, 2번은 시간초과가 발생하였고, 3번에서 통과를 하였습니다.


1) visitedAlpha = [] # 리스트로 구현, 17번 행 pop()이용 -> 시간초과

2) visitedAlpha.deque() # from collections import deque 후 deque로 구현, 17번 행 pop()이용 -> 시간초과

3) visited = "" # 문자열로 구현, 17번 행 visitedAlpha = visitedAlpha[:-1]이용 -> 통과

제출 번호는 각각 264253022642574526425827입니다.

세 방식의 시간복잡도가 어떤 부분에서 달라질 수 있는지 알려주실 수 있을까요??

감사합니다!

shg9411   3년 전

시간제한 8초에 거의 근접해서 통과한 것은 서버 상태에 따라 약간씩 변동될 수 있습니다.

통과 되었던 코드가 시간초과가 발생할 수 있고, 시간초과 발생했던 코드가 통과될 수도 있죠.

purpose   3년 전

@shg9411 

답변 감사드립니다. 그러면 위의 서로 다른 자료형들끼리의 시간차이가 크게 나지는 않는 건가요?

shg9411   3년 전

list, deque의 pop은 O(1)이고

문자열 slicing이 가장 오래 걸리는 것이 맞습니다.

purpose   3년 전

@shg9411

저도 그렇게 생각했는데 문자열 slicing 만 통과가 됩니다.

아무튼 답변 감사드립니다. 제가 더 찾아보도록 하겠습니다!!

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