1ํธ์ ์๋ ๋งํฌ๋ก!
https://jyoonit.tistory.com/28
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] DFS, BFS (1)
๐ ๊ทธ๋ํ ๐ ํ๋ก๊ทธ๋๋ฐ์์ ๊ทธ๋ํ๋ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋ํ๋ผ ์ ์์. 1. ์ธ์ ํ๋ ฌ : 2์ฐจ์ ๋ฐฐ์ด๋ก ๊ทธ๋ํ๋ฅผ ํํ 2. ์ธ์ ๋ฆฌ์คํธ : ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ๋ฅผ ํํ #์ธ์ ํ๋ ฌ ๋ฐฉ์ INF = 999999999 graph = [ [0
jyoonit.tistory.com
โ ์์ : ์๋ฃ์ ์ผ๋ ค๋จน๊ธฐ
n * m ํฌ๊ธฐ์ ์ผ์ํ. 0์ ๊ตฌ๋ช ์ด ๋ซ๋ ค์๋ ๋ถ๋ถ, 1์ ์นธ๋ง์ด๊ฐ ์กด์ฌํ๋ ๋ถ๋ถ. ๊ตฌ๋ฉ์ด ๋ซ๋ ค์๋ ๋ถ๋ถ๋ผ๋ฆฌ ์ํ์ข์ฐ๋ก ๋ถ์ด์์ผ๋ฉด ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ๊ฐ์ฃผ. ์ผ์ ํ์ ๋ชจ์์ด ์ฃผ์ด์ง ๋ ๋ง๋ค์ด์ง๋ ์ผ์์ ๊ฐ์?
๐ก๋ด ํ์ด
n, m = map(int, input().split())
icetray = list()
for i in range(n):
icetray.append(list(map(int, input())))
ice = 0
def dfs(x, y):
if x < 0 or x >= n or y < 0 or y >= m :
return
if icetray[x][y] == 0 :
icetray[x][y] = 1
dfs(x - 1, y)
dfs(x + 1, y)
dfs(x, y + 1)
dfs(x, y - 1)
return
for x in range(n):
for y in range(m):
if icetray[x][y] == 0 :
dfs(x, y)
ice += 1
print(ice)
โ ์์ : ๋ฏธ๋ก ํ์ถ
n * m ํฌ๊ธฐ์ ์งํ๊ฐํ ํํ์ ๋ฏธ๋ก์ ๊ฐํ์๋ค. ๋ฏธ๋ก์๋ ์ฌ๋ฌ ๋ง๋ฆฌ์ ๊ดด๋ฌผ์ด ์์ด ํผํด์ ํ์ถํด์ผํจ. ํ์ฌ์์น๋ (1, 1)์ด๊ณ ๋ฏธ๋ก์ ์ถ๊ตฌ๋ (n, m)์ ์์น์ ์กด์ฌ. ๊ดด๋ฌผ์ด ์๋ ๋ถ๋ถ์ 0 ๊ดด๋ฌผ์ด ์๋ ๋ถ๋ถ์ 1๋ก ํ์๋์ด ์๋ค. ๋ฏธ๋ก๋ ๋ฐ๋์ ํ์ถ๊ฐ๋ฅํ ํํ๋ก ์ ์๋จ. ํ์ถํ๊ธฐ ์ํด ์์ง์ฌ์ผ ํ๋ ์ต์ ์นธ์ ๊ฐ์๋ฅผ ๊ตฌํ์์ค. (์์์นธ๊ณผ ๋ง์ง๋ง ์นธ์ ํฌํจํจ)
from collections import deque
n, m = map(int, input().split())
maze = []
for i in range(n):
maze.append(list(map(int, input())))
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(x, y):
queue = deque()
queue.append((x, y))
while queue:
x, y = queue.popleft()
for i in range(4):
nx = x +dx[i]
ny = y +dy[i]
if nx < 0 or ny < 0 or nx >= n or ny >= m :
continue
if maze[nx][ny] == 0:
continue
if maze[nx][ny] == 1:
maze[nx][ny] = maze[x][y] + 1
queue.append((nx, ny))
return maze[n - 1][m - 1]
print(bfs(0, 0))
๋ต์์์์ ๊ฐ์ ์ฝ๋...!! ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๋ฐ๋ผ์ณค๋น....ใ -ใ ๋ค์ ์ฒ์ฒํ ๋ณด๋ฉด์ ์ดํดํด๋ด์ผ๊ฒ ๋ค
์๊ณ ๋ฆฌ์ฆ์ด์นด๋....์ฝํ
์ด์ฉ์ข์...^^/
'๐ฅด์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] ์ ๋ ฌ(์ ํ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต์ ๋ ฌ, ๊ณ์์ ๋ ฌ) (2) (0) | 2022.02.28 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] ์ ๋ ฌ(์ ํ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต์ ๋ ฌ, ๊ณ์์ ๋ ฌ) (0) | 2022.02.27 |
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] DFS, BFS (1) (0) | 2022.02.24 |
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] ๊ตฌํ ๋ฌธ์ (0) | 2022.02.24 |
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ Greedy!!! (0) | 2022.02.22 |