Skip to content

Commit

Permalink
feat : upload week 7
Browse files Browse the repository at this point in the history
  • Loading branch information
aa601 committed Jan 21, 2025
1 parent 89edeec commit 4ca6dc5
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 0 deletions.
13 changes: 13 additions & 0 deletions longest-substring-without-repeating-characters/aa601.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# TC:O(n^2) SC:O(1)
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
max_size = 0
for start in range(len(s)):
saw = set()
for end in range(start, len(s)):
if s[end] in saw:
break
else:
saw.add(s[end])
max_size = max(max_size, end - start + 1) # ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์™€ ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ธธ์ด๊ฐ’ ๋น„๊ต
return max_size
20 changes: 20 additions & 0 deletions number-of-islands/aa601.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# TC:O(n * m), SC:O(n * m)
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
cnt = 0
row = len(grid)
col = len(grid[0])
def dfs(r: int, c: int) :
grid[r][c] = "0"
for y, x in [(r, c + 1), (r + 1, c), (r - 1, c), (r, c - 1)]: # ํ˜„์žฌ r,c ์ขŒํ‘œ์— ๋Œ€ํ•ด ์ƒํ•˜์ขŒ์šฐ ํƒ์ƒ‰
if 0 <= y < row and 0 <= x < col:
if grid[y][x] == "1":
dfs(y, x)
return

for r in range(row):
for c in range(col):
if grid[r][c] == "1": #๋•… ๋ฐœ๊ฒฌ ์‹œ cnt ์ฆ๊ฐ€ํ•˜๊ณ , ๋ฐœ๊ฒฌ๋œ ๋•…๊ณผ ์—ฐ๊ฒฐ๋œ ๋•…๋“ค์„ ์ œ๊ฑฐ
cnt += 1
dfs(r, c)
return cnt
11 changes: 11 additions & 0 deletions reverse-linked-list/aa601.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# TC:O(n), SC:O(1)
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
cur = head
prv = None
while cur != None:
tmp = cur.next # ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ tmp์— ์ €์žฅ
cur.next = prv # ํ˜„์žฌ ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋ฅผ prv๋กœ ์„ค์ •
prv = cur # prv๋ฅผ ํ˜„์žฌ ๋…ธ๋“œ๋กœ ์„ค์ •
cur = tmp # ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๊ทธ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ๋ณ€๊ฒฝ
return prv
33 changes: 33 additions & 0 deletions set-matrix-zeroes/aa601.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# TC:O(n^2), SC:O(1)
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
first_row = False
first_col = False

#์ฒซ๋ฒˆ์งธ ํ–‰, ์—ด flag
for r in range(len(matrix)):
if matrix[r][0] == 0:
first_row = True
for c in range(len(matrix[0])):
if matrix[0][c] == 0:
first_col = True

#๊ทธ ์ด์™ธ์˜ ํ–‰, ์—ด flag
for r in range(1, len(matrix)):
for c in range(1, len(matrix[0])):
if matrix[r][c] == 0:
matrix[r][0] = 0
matrix[0][c] = 0

# 0์œผ๋กœ ์„ค์ •
for r in range(1, len(matrix)):
for c in range(1, len(matrix[0])):
if matrix[r][0] == 0 or matrix[0][c] == 0:
matrix[r][c] = 0
# ์ฒซ๋ฒˆ์งธ ํ–‰๊ณผ ์—ด์— ๋Œ€ํ•ด ๊ฐ๊ฐ 0์œผ๋กœ ์„ค์ •
if first_row:
for r in range(len(matrix)):
matrix[r][0] = 0
if first_col:
for c in range(len(matrix[0])):
matrix[0][c] = 0
12 changes: 12 additions & 0 deletions unique-paths/aa601.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# TC:O(n*m), SC:O(1)
# ์™ผ์ชฝ์•„๋ž˜๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” ์™ผ์ชฝ์œผ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ + ์•„๋ž˜๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ์ˆ˜
# ๊ฐ€์žฅ์ž๋ฆฌ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ๋ชจ๋‘ 1
# nํฌ๊ธฐ์˜ ๋ฆฌ์ŠคํŠธ ๊ฐ’์„ ๋งค ๋ฒˆ ๋ฎ์–ด์จ์„œ ๊ณ„์‚ฐํ•จ
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
l = [1 for _ in range(n)]
for row in range(1, m):
for col in range(1, n):
l[col] += l[col - 1]

return l[-1]

0 comments on commit 4ca6dc5

Please sign in to comment.