Skip to content

Commit b7e48df

Browse files
Merge pull request #1626 from CodingTestStudy2/최원준
[최원준] Day03
2 parents 6f3660e + eb2a5bf commit b7e48df

2 files changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
범위의 위쪽 row, 아래쪽 row의 인덱스를 찾아서 바꿔줍니다.
6+
7+
2. 시간복잡도 :
8+
O(n*n)
9+
10+
3. 자료구조/알고리즘 :
11+
-
12+
13+
'''
14+
class Solution:
15+
def reverseSubmatrix(self, grid: List[List[int]], x: int, y: int, k: int) -> List[List[int]]:
16+
for row in range(x, x+k//2):
17+
for col in range(y, y+k):
18+
grid[row][col], grid[2 * x + k - 1 - row][col] = grid[2 * x + k - 1 - row][col], grid[row][col]
19+
return grid
20+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, val=0, left=None, right=None):
4+
# self.val = val
5+
# self.left = left
6+
# self.right = right
7+
#
8+
9+
'''
10+
1. 아이디어 :
11+
- key까지 찾아갑니다.
12+
- 자식이 없을때: par 연결 끊기
13+
- 자식이 1개 있을때: par을 자식과 연결
14+
- 자식이 2개 있을때: par을 왼쪽 자식과 연결 + 오른쪽 자식을 왼쪽 자식의 가장 오른쪽에 연결
15+
16+
2. 시간복잡도 :
17+
O(n)
18+
19+
3. 자료구조/알고리즘 :
20+
dfs
21+
22+
'''
23+
class Solution:
24+
def deleteNode(self, node: Optional[TreeNode], key: int) -> Optional[TreeNode]:
25+
if not node:
26+
return None
27+
28+
if node.val > key:
29+
node.left = self.deleteNode(node.left, key)
30+
return node
31+
if node.val < key:
32+
node.right = self.deleteNode(node.right, key)
33+
return node
34+
35+
if not node.left:
36+
return node.right
37+
if not node.right:
38+
return node.left
39+
40+
next_node = node.left
41+
while next_node.right:
42+
next_node = next_node.right
43+
44+
next_node.right = node.right
45+
46+
return node.left
47+
48+

0 commit comments

Comments
 (0)