We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent bc5da91 commit f383c8cCopy full SHA for f383c8c
1 file changed
longest-substring-without-repeating-characters/gyeo-ri.py
@@ -1,3 +1,22 @@
1
+"""
2
+[결과 요약]
3
+# 재시도횟수: 4회
4
+ 1. 모든 문자열 한 번씩 순회하기(실패)
5
+ - 단순 순회가 아니라 실패 시 직전의 중복 문자열 위치를 찾아야 해서 단순 순회로는 처리가 불가함
6
+ 2. 문자열 상태를 기록하고, 중복된 문자열이 등장했을 때 기존 문자열을 split 하여 다시 순회를 시작하는 방법(힌트 없이 성공한 방식)
7
+ - 연산 결과는 동일하지만 복잡도가 O(n^2)으로 효율적이지는 않음
8
+ (3부터 구현 방식에 대한 힌트를 참조)
9
+ 3. Sliding Window를 구현(두 개의 포인터, Set)
10
+ - 시간복잡도: O(n) / 공간복잡도: O(n)
11
+ - 중복 발생 시 while문을 사용하여 중복된 문자가 등장하는 위치까지 순차 탐색(이전 문자열을 제거)
12
+ 4. Dict으로 (3)과 같은 로직을 구현
13
+ - 시간복잡도: O(n) / 공간복잡도: O(n)이지만 dict을 사용하므로 시간 절약 / 메모리는 약간 더 사용함
14
+ - 인덱스를 순차로 탐색하는 것이 아니라 dict에서 바로 조회하는 방식
15
+
16
17
18
19
20
class Solution:
21
def lengthOfLongestSubstring(self, s: str) -> int:
22
used_characters = dict()
0 commit comments