File tree Expand file tree Collapse file tree 2 files changed +79
-0
lines changed
Expand file tree Collapse file tree 2 files changed +79
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ Constraints:
3+ 1. n equals the length of array nums
4+ 2. n is between 1 and 10^4 inclusive
5+ 3. Each element nums[i] is between 0 and n inclusive
6+ 4. All numbers in nums are unique (no duplicates)
7+
8+ Time Complexity: O(nlogn)
9+ - 정렬에 nlogn, 순회에 n이 필요하므로 전체적으로 O(nlogn)
10+ Space Complexity: O(1)
11+ - 추가 공간을 사용하지 않고 입력 배열만 사용
12+
13+ 풀이 방법:
14+ 1. 배열을 정렬하여 0부터 n까지 순서대로 있어야 할 위치에 없는 숫자를 찾음
15+ 2. 인덱스와 해당 위치의 값을 비교하여 다르다면 그 인덱스가 missing number
16+ 3. 모든 인덱스를 확인했는데도 없다면 n이 missing number
17+ """
18+
19+ class Solution :
20+ def missingNumber (self , nums : List [int ]) -> int :
21+ nums .sort ()
22+
23+ for i in range (len (nums )):
24+ if nums [i ] != i :
25+ return i
26+
27+ return len (nums )
28+
Original file line number Diff line number Diff line change 1+ """
2+ Constraints:
3+ 1. m equals board length (number of rows)
4+ 2. n equals board[i] length (number of columns)
5+ 3. m and n are between 1 and 6 inclusive
6+ 4. word length is between 1 and 15 inclusive
7+ 5. board and word contain only lowercase and uppercase English letters
8+
9+ Time Complexity: O(N * 3^L)
10+ - N은 board의 모든 cell (m * n)
11+ - L은 word의 길이
12+ - 각 cell에서 시작하여 word의 각 글자마다 세방향으로 탐색 (이미 방문한 방향 제외)
13+
14+ Space Complexity: O(L)
15+ - L은 word의 길이로, 재귀 호출 스택의 깊이
16+
17+ To Do:
18+ - DFS와 백트래킹 개념 복습하기
19+ - 다른 스터디원분들의 답안 참조하여 다른 풀이방법 복습하기
20+ """
21+
22+ class Solution :
23+ def exist (self , board : List [List [str ]], word : str ) -> bool :
24+ rows , cols = len (board ), len (board [0 ])
25+
26+ def dfs (i , j , k ):
27+ if k == len (word ):
28+ return True
29+
30+ if (i < 0 or i >= rows or
31+ j < 0 or j >= cols or
32+ board [i ][j ] != word [k ]):
33+ return False
34+
35+ temp = board [i ][j ]
36+ board [i ][j ] = '#'
37+
38+ result = (dfs (i + 1 , j , k + 1 ) or
39+ dfs (i - 1 , j , k + 1 ) or
40+ dfs (i , j + 1 , k + 1 ) or
41+ dfs (i , j - 1 , k + 1 ))
42+
43+ board [i ][j ] = temp
44+ return result
45+
46+ for i in range (rows ):
47+ for j in range (cols ):
48+ if board [i ][j ] == word [0 ]:
49+ if dfs (i , j , 0 ):
50+ return True
51+ return False
You can’t perform that action at this time.
0 commit comments