๐ ๋ฌธ์
https://www.acmicpc.net/problem/10026
๐์คํ๊ฒฐ๊ณผ
๐ ํ์ด
1. ์ ๋ก์๋งน ์๋ ๋ ) DFS๋ก ์์ญ ๊ฐ์ ๊ตฌํ๊ธฐ
2. G-> R๋ก ๋ฐ๊พธ๊ธฐ
3. ์ ๋ก์๋งน์ผ ๋) DFS๋ก ์์ญ ๊ฐ์ ์ํ๊ธฐ
๐ป ๋ต์
import sys
sys.setrecursionlimit(10**6)
# from collections import deque
n = int(sys.stdin.readline())
# list ๋ฉ์๋๋ก ๋ฌธ์์ด ํ๋์ฉ ์๋ผ์ค, rstrip์ผ๋ก \n์ ๊ฑฐ
grid = [list(sys.stdin.readline().rstrip()) for _ in range(n)]
# ๋ฐฉ๋ฌธํ์ํ ๋ฐฐ์ด false๋ก ์ด๊ธฐํ
visited = [[False]* n for _ in range(n)]
# ์ํ์ข์ฐ ์์ ํ์
d = [(0,1),(0,-1),(1,0),(-1,0)]
def dfs(x,y):
visited[y][x] = True
color = grid[y][x]
for dx, dy in d:
X, Y = x + dx, y +dy
if(0 <= X < n) and (0 <= Y < n):
if visited[Y][X] == False and grid[Y][X] == color:
dfs(X,Y)
#์ ๋ก์์ฝ์ด ์๋ ๊ฒฝ์ฐ
cnt, cnt2 = 0,0
for y in range(n):
for x in range(n):
if visited[y][x] == False:
dfs(x,y)
cnt += 1
# ๊ทธ๋ฆฌ๋์ ์ด๋ก=>๋นจ๊ฐ ์์ , ๋ฐฉ๋ฌธ ๋ฆฌ์คํธ ์ฌ์ฌ์ฉ์ํด ์ด๊ธฐํํ๊ธฐ
for y in range(n) :
for x in range(n):
if grid[y][x] == 'G':
grid[y][x] = 'R'
visited = [[False] * n for _ in range(n)]
#์ ๋ก์๋งน์ธ ๊ฒฝ์ฐ
for y in range(n):
for x in range(n):
if visited[y][x] == False:
dfs(x,y)
cnt2 += 1
print(cnt, cnt2)
โบ๏ธ BFS ๋ฌธ์ ์์ฃผ ์ค์ํ๋ ์
1. ์์์ ์ ๋ฐฉ๋ฌธํ๋ค๋ ํ์๋ฅผ ๋จ๊ธฐ์ง ์๋๋ค.
=> ์์์ ์ ๋๋ฒ ๋ฐฉ๋ฌธํ ์ ์์
2. ํ์ ๋ฃ์ ๋. ๋ฐฉ๋ฌธํ๋ค๋ ํ์๋ฅผ ํ๋ ๋์ ํ์์ ๋นผ๋ผ ๋ ๋ฐฉ๋ฌธํ๋ค๋ ํ์๋ฅผ ๋จ๊น
=> ๊ฐ์ ์นธ์ด ํ์ ์ฌ๋ฌ ๋ฒ๋ค์ด๊ฐ์ ์๊ฐ ์ด๊ณผ or ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ๋ฐ์
3. ์ด์ํ ์์๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๋์ง์ ๋ํ ์ฒดํฌ ์๋ชปํจ
โบ๏ธ DFS ๋ฌธ์ ํ ๋ ์ฐธ๊ณ
1. ์์ํ๋ ์นธ์ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ํ์ ๋จ๊ธฐ๊ธฐ
2. ์คํ์์ ์์ ๊บผ๋ด์ ๊ทธ ์นธ๊ณผ ์ํ์ข์ฐ๋ก ์ธ์ ํ ์นธ์ ๋ํด 3๋ฒ ์งํํ๊ธฐ
3. ํด๋น ์นธ์ ์ด์ ์ ๋ฐฉ๋ฌธํ์ผ๋ฉด ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ , ์ฒ์ ๋ฐฉ๋ฌธํ์ผ๋ฉด ๋ฐฉ๋ฌธ ํ์ ๋จ๊ธฐ๊ณ ํด๋น ์นธ์ ์คํ์ ์ฝ์
4. ์คํ ๋น ๋๊น์ง 2๋ฒ ๋ฐ๋ณต
๋ชจ๋ ์นธ์ด ์คํ์ 1๋ฒ์ฉ ๋ค์ด๊ฐ๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ ์นธ์ด n๊ฐ์ผ ๋ O(n)
๐ ์ฐธ๊ณ
https://chaewonkong.github.io/posts/python-deque.html
Python - ๋ฐํฌ(deque) ์ธ์ , ์ ์ฌ์ฉํด์ผ ํ๋๊ฐ?
Python์ ๋ฐํฌ(deque)์ ๋ํด ์์๋ณด๊ณ ์ธ์ , ์ ์จ์ผ ํ๋์ง ์ดํด๋ณธ๋ค
chaewonkong.github.io
https://www.youtube.com/watch?v=93jy2yUYfVE&list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY&index=11
https://develop247.tistory.com/248
[ํ์ด์ฌ/Python] ๋ฐฑ์ค 10026๋ฒ ์ ๋ก์์ฝ
[ํ์ด์ฌ/Python] ๋ฐฑ์ค 10026๋ฒ ์ ๋ก์์ฝ 10026๋ฒ: ์ ๋ก์์ฝ ์ ๋ก์์ฝ์ ๋นจ๊ฐ์๊ณผ ์ด๋ก์์ ์ฐจ์ด๋ฅผ ๊ฑฐ์ ๋๋ผ์ง ๋ชปํ๋ค. ๋ฐ๋ผ์, ์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ์ ์๋ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ๊ณผ๋ ์ข ๋ค๋ฅผ ์
develop247.tistory.com
'Algorithm > DFS&BFS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์ฝํ ] DFS/BFS/ ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (0) | 2024.10.30 |
---|---|
[์ด์ฝํ ]DFS/BFS/ ์๋ฃ์ ์ผ๋ ค๋จน๊ธฐ (1) | 2024.10.22 |
9466๋ฒ/DFS ํ ํ๋ก์ ํธ/ํ์ด์ฌ (0) | 2024.09.29 |
1240๋ฒ/DFS ๋ ธ๋์ฌ์ด๊ฑฐ๋ฆฌ/ํ์ด์ฌ (2) | 2024.09.28 |
1260๋ฒ / DFS์ BFS / ํ์ด์ฌ (1) | 2024.09.08 |