Skip to content

Commit 385bec3

Browse files
authored
Create 1034. Coloring A Border.py
1 parent 775c9c4 commit 385bec3

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class Solution:
2+
def colorBorder(self, grid, row, col, color):
3+
m = len(grid)
4+
n = len(grid[0])
5+
6+
target = grid[row][col]
7+
visited = [[False] * n for _ in range(m)]
8+
border = []
9+
10+
directions = [(1, 0), (-1, 0), (0, 1), (0, -1)]
11+
12+
def dfs(r, c):
13+
visited[r][c] = True
14+
15+
is_border = False
16+
17+
for dr, dc in directions:
18+
nr = r + dr
19+
nc = c + dc
20+
21+
# 배열의 가장자리
22+
if nr < 0 or nr >= m or nc < 0 or nc >= n:
23+
is_border = True
24+
continue
25+
26+
# 다른 색과 인접
27+
if grid[nr][nc] != target:
28+
is_border = True
29+
continue
30+
31+
# 같은 색이고 아직 방문하지 않았다면 DFS
32+
if not visited[nr][nc]:
33+
dfs(nr, nc)
34+
35+
if is_border:
36+
border.append((r, c))
37+
38+
dfs(row, col)
39+
40+
# border만 색칠
41+
for r, c in border:
42+
grid[r][c] = color
43+
44+
return grid

0 commit comments

Comments
 (0)