1987번 - 알파벳
안녕하세요.
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]이용 -> 통과
제출 번호는 각각 26425302, 26425745, 26425827입니다.
세 방식의 시간복잡도가 어떤 부분에서 달라질 수 있는지 알려주실 수 있을까요??
감사합니다!
시간제한 8초에 거의 근접해서 통과한 것은 서버 상태에 따라 약간씩 변동될 수 있습니다.
통과 되었던 코드가 시간초과가 발생할 수 있고, 시간초과 발생했던 코드가 통과될 수도 있죠.
@shg9411
답변 감사드립니다. 그러면 위의 서로 다른 자료형들끼리의 시간차이가 크게 나지는 않는 건가요?
list, deque의 pop은 O(1)이고
문자열 slicing이 가장 오래 걸리는 것이 맞습니다.
저도 그렇게 생각했는데 문자열 slicing 만 통과가 됩니다.
아무튼 답변 감사드립니다. 제가 더 찾아보도록 하겠습니다!!
댓글을 작성하려면 로그인해야 합니다.
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]이용 -> 통과
제출 번호는 각각 26425302, 26425745, 26425827입니다.
세 방식의 시간복잡도가 어떤 부분에서 달라질 수 있는지 알려주실 수 있을까요??
감사합니다!