diff --git a/course-schedule/shinsj4653.py b/course-schedule/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/course-schedule/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/invert-binary-tree/shinsj4653.py b/invert-binary-tree/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/invert-binary-tree/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/jump-game/shinsj4653.py b/jump-game/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/jump-game/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/linked-list-cycle/shinsj4653.py b/linked-list-cycle/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/linked-list-cycle/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/maximum-product-subarray/shinsj4653.py b/maximum-product-subarray/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/maximum-product-subarray/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/merge-k-sorted-lists/shinsj4653.py b/merge-k-sorted-lists/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/merge-k-sorted-lists/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/minimum-window-substring/shinsj4653.py b/minimum-window-substring/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/minimum-window-substring/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/pacific-atlantic-water-flow/shinsj4653.py b/pacific-atlantic-water-flow/shinsj4653.py new file mode 100644 index 000000000..bf962fbf3 --- /dev/null +++ b/pacific-atlantic-water-flow/shinsj4653.py @@ -0,0 +1,71 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + +class Solution: + def pacificAtlantic(heights): + ret = [] + + dy = [-1, 0, 1, 0] + dx = [0, 1, 0, -1] + + n, m = len(heights), len(heights[0]) + + def isPacific(y, x): # pacific 도달 가능한지 + if y == 0 or (0 <= y < n and x == 0): + return True + + else: + return False + + def isAtlantic(y, x): # Atlantic 도달 가능한지 + if y == n - 1 or (0 <= y < n and x == m - 1): + return True + + else: + return False + + def inRange(y, x): + if 0 <= y < n and 0 <= x < m: + return True + else: + return False + + v = [[False for _ in range(m)] for _ in range(n)] + + def dfs(y, x, heights, v): + if isPacific(y, x) and isAtlantic(y, x): + return True + + v[y][x] = True + + for i in range(4): + ny, nx = y + dy[i], x + dx[i] + if inRange(ny, nx) and not v[ny][nx] and \ + heights[y][x] >= heights[ny][nx]: + if dfs(ny, nx, heights, v): + return True + + v[y][x] = False + return False + + for i in range(n): + for j in range(m): + if dfs(i, j, heights, v): + ret.append((i, j)) + + return ret + + pacificAtlantic([[1,2,2,3,5],[3,2,3,4,4],[2,4,5,3,1],[6,7,1,4,5],[5,1,1,2,4]]) + diff --git a/search-in-rotated-sorted-array/shinsj4653.py b/search-in-rotated-sorted-array/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/search-in-rotated-sorted-array/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + + diff --git a/sum-of-two-integers/shinsj4653.py b/sum-of-two-integers/shinsj4653.py new file mode 100644 index 000000000..f2dd9f373 --- /dev/null +++ b/sum-of-two-integers/shinsj4653.py @@ -0,0 +1,15 @@ +""" +[문제풀이] +# Inputs + +# Outputs + +# Constraints + +# Ideas + +[회고] + +""" + +