Skip to content

Commit 4ca6dc5

Browse files
committed
feat : upload week 7
1 parent 89edeec commit 4ca6dc5

File tree

5 files changed

+89
-0
lines changed

5 files changed

+89
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# TC:O(n^2) SC:O(1)
2+
class Solution:
3+
def lengthOfLongestSubstring(self, s: str) -> int:
4+
max_size = 0
5+
for start in range(len(s)):
6+
saw = set()
7+
for end in range(start, len(s)):
8+
if s[end] in saw:
9+
break
10+
else:
11+
saw.add(s[end])
12+
max_size = max(max_size, end - start + 1) # ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์™€ ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ธธ์ด๊ฐ’ ๋น„๊ต
13+
return max_size

โ€Žnumber-of-islands/aa601.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# TC:O(n * m), SC:O(n * m)
2+
class Solution:
3+
def numIslands(self, grid: List[List[str]]) -> int:
4+
cnt = 0
5+
row = len(grid)
6+
col = len(grid[0])
7+
def dfs(r: int, c: int) :
8+
grid[r][c] = "0"
9+
for y, x in [(r, c + 1), (r + 1, c), (r - 1, c), (r, c - 1)]: # ํ˜„์žฌ r,c ์ขŒํ‘œ์— ๋Œ€ํ•ด ์ƒํ•˜์ขŒ์šฐ ํƒ์ƒ‰
10+
if 0 <= y < row and 0 <= x < col:
11+
if grid[y][x] == "1":
12+
dfs(y, x)
13+
return
14+
15+
for r in range(row):
16+
for c in range(col):
17+
if grid[r][c] == "1": #๋•… ๋ฐœ๊ฒฌ ์‹œ cnt ์ฆ๊ฐ€ํ•˜๊ณ , ๋ฐœ๊ฒฌ๋œ ๋•…๊ณผ ์—ฐ๊ฒฐ๋œ ๋•…๋“ค์„ ์ œ๊ฑฐ
18+
cnt += 1
19+
dfs(r, c)
20+
return cnt

โ€Žreverse-linked-list/aa601.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# TC:O(n), SC:O(1)
2+
class Solution:
3+
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
4+
cur = head
5+
prv = None
6+
while cur != None:
7+
tmp = cur.next # ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ tmp์— ์ €์žฅ
8+
cur.next = prv # ํ˜„์žฌ ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋ฅผ prv๋กœ ์„ค์ •
9+
prv = cur # prv๋ฅผ ํ˜„์žฌ ๋…ธ๋“œ๋กœ ์„ค์ •
10+
cur = tmp # ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๊ทธ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ๋ณ€๊ฒฝ
11+
return prv

โ€Žset-matrix-zeroes/aa601.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# TC:O(n^2), SC:O(1)
2+
class Solution:
3+
def setZeroes(self, matrix: List[List[int]]) -> None:
4+
first_row = False
5+
first_col = False
6+
7+
#์ฒซ๋ฒˆ์งธ ํ–‰, ์—ด flag
8+
for r in range(len(matrix)):
9+
if matrix[r][0] == 0:
10+
first_row = True
11+
for c in range(len(matrix[0])):
12+
if matrix[0][c] == 0:
13+
first_col = True
14+
15+
#๊ทธ ์ด์™ธ์˜ ํ–‰, ์—ด flag
16+
for r in range(1, len(matrix)):
17+
for c in range(1, len(matrix[0])):
18+
if matrix[r][c] == 0:
19+
matrix[r][0] = 0
20+
matrix[0][c] = 0
21+
22+
# 0์œผ๋กœ ์„ค์ •
23+
for r in range(1, len(matrix)):
24+
for c in range(1, len(matrix[0])):
25+
if matrix[r][0] == 0 or matrix[0][c] == 0:
26+
matrix[r][c] = 0
27+
# ์ฒซ๋ฒˆ์งธ ํ–‰๊ณผ ์—ด์— ๋Œ€ํ•ด ๊ฐ๊ฐ 0์œผ๋กœ ์„ค์ •
28+
if first_row:
29+
for r in range(len(matrix)):
30+
matrix[r][0] = 0
31+
if first_col:
32+
for c in range(len(matrix[0])):
33+
matrix[0][c] = 0

โ€Žunique-paths/aa601.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# TC:O(n*m), SC:O(1)
2+
# ์™ผ์ชฝ์•„๋ž˜๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” ์™ผ์ชฝ์œผ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ + ์•„๋ž˜๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ์ˆ˜
3+
# ๊ฐ€์žฅ์ž๋ฆฌ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋ชจ๋‘ 1
4+
# nํฌ๊ธฐ์˜ ๋ฆฌ์ŠคํŠธ ๊ฐ’์„ ๋งค ๋ฒˆ ๋ฎ์–ด์จ์„œ ๊ณ„์‚ฐํ•จ
5+
class Solution:
6+
def uniquePaths(self, m: int, n: int) -> int:
7+
l = [1 for _ in range(n)]
8+
for row in range(1, m):
9+
for col in range(1, n):
10+
l[col] += l[col - 1]
11+
12+
return l[-1]

0 commit comments

Comments
ย (0)