Skip to content

Commit 3594821

Browse files
authored
Merge pull request #1475 from sejineer/main
[sejineer] Week 07 solutions
2 parents b0ee1cd + dbb5ce9 commit 3594821

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""
2+
시간 복잡도: O(N)
3+
공간 복잡도: O(N)
4+
"""
5+
class Solution:
6+
def lengthOfLongestSubstring(self, s: str) -> int:
7+
s_set = set()
8+
start, end = 0, 0
9+
10+
result = 0
11+
12+
while end < len(s):
13+
if s[end] in s_set:
14+
s_set.remove(s[start])
15+
start += 1
16+
else:
17+
s_set.add(s[end])
18+
end += 1
19+
result = max(result, end - start)
20+
21+
return result

number-of-islands/sejineer.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
시간 복잡도: O(m * n)
3+
공간 복잡도: O(m * n)
4+
"""
5+
from collections import deque
6+
7+
class Solution:
8+
def numIslands(self, grid: List[List[str]]) -> int:
9+
m, n = len(grid), len(grid[0])
10+
vis = [[False] * n for _ in range(m)]
11+
12+
dx = [1, -1, 0, 0]
13+
dy = [0, 0, 1, -1]
14+
15+
result = 0
16+
for i in range(m):
17+
for j in range(n):
18+
if grid[i][j] == '1' and not vis[i][j]:
19+
queue = deque()
20+
queue.append((j, i))
21+
vis[i][j] = True
22+
while queue:
23+
cur = queue.popleft()
24+
for nxt in range(4):
25+
nx = cur[0] + dx[nxt]
26+
ny = cur[1] + dy[nxt]
27+
if not 0 <= nx < n or not 0 <= ny < m:
28+
continue
29+
if vis[ny][nx] or grid[ny][nx] != '1':
30+
continue
31+
queue.append((nx, ny))
32+
vis[ny][nx] = True
33+
result += 1
34+
35+
return result

reverse-linked-list/sejineer.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""
2+
시간 복잡도: O(N)
3+
공간 복잡도: O(1)
4+
"""
5+
class Solution:
6+
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
7+
prev = None
8+
9+
while head:
10+
nxt = head.next
11+
head.next = prev
12+
prev = head
13+
head = nxt
14+
15+
return prev

0 commit comments

Comments
 (0)