์ฐธ๊ณ ) ์ด๊ฒ์ด ์ทจ์
์ ์ํ ์ฝ๋ฉํ
์คํธ๋ค with ํ์ด์ฌ ์ฑ
์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ฌธ์ ์ ์ฝ๋์
๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ์์ธํ๊ฒ ์ ์ง ์๊ณ , ๊ฐ๋จํ ์ค๋ช
๊ณผ ์ ์ฝ๋๋ง ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
์ค์ ๋ฌธ์ (2) ๋ฏธ๋กํ์ถ
- NxM ์ ๋ฏธ๋ก
- ์์ ์์น๋ (1,1), ํ์ถ๊ตฌ๋ (N,M)
- ๊ฐ ์ ์๋ ๊ธธ 1, ๊ดด๋ฌผ์ด ์กด์ฌํ๋ ์นธ 0
- ํ์ถํ๊ธฐ ์ํด ๊ฑฐ์น๋ ์นธ์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ๊ธฐ
##### ์
๋ ฅ์กฐ๊ฑด
- ์ฒซ์จ์ค์ N,M ์ฃผ์ด์ง
- 4 <= N,M <= 200
- ๋์จ์ค ๋ถํฐ๋ ๋ฏธ๋ก์ ๋ํ ์ ๋ณด (1 or 0)
- (1,1) (N,M)์ ํญ์ 1
<๋ฌธ์ ํ์ด>
1. ์ฒซ๋ฒ์งธ ์๋
queue๋ฅผ ํ์ฉํ์ง ์๊ณ ๊ตฌํํ์(๋ฐ๋ณต๋ฌธ) ํํ๋ก ํ์๋๋ฐ ๋๋ฌด ์ค๋๊ฑธ๋ ค์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ์ฑ
์ ์ฐธ๊ณ ํ์ฌ queue๋ฅผ ํ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
2. ๋๋ฒ์งธ ์๋ ๋ฐ ์ค๋ต๋ ธํธ
- ๋ฐฉ๋ฌธํ ๋
ธ๋๋ฅผ 999๋ก ๋ฐ๊พธ๋ ํ์์ ํ์ฉํ์ง๋ง
- count ํ์์ผ๋ก ํ์๋๋ฐ, ์ฝ๋ ํน์ฑ์ ๋ชจ๋ 1์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ 1์ธ ๊ฐ์ด ๋ชจ๋ 999๋ก ๋ฐ๋๋ค.
- ๋ฐ๋ผ์ 999๋ก ๋ณํํ๋ ๊ฐ์ ์ธ์ด์ฃผ๊ฒ๋๋ฉด ๊ฒฐ๊ตญ 1์ ๊ฐฏ์๋ฅผ ์ธ๋๊ฒ๊ณผ ๊ฐ์์ง๋ค.
- ํ๋ ์ ์์ด ์ฑ
์ ์ฐธ์กฐํ์ฌ 1, 2, 3, ,,, ์ด๋ ๊ฒ ๊ฐ์ ๋ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค. ์ง์ง...์ด๋ ต๋ค ์๊ณ ๋ฆฌ์ฆ ...
- ๋ํด ์ค๋ค๋ ๊ฒ? 1๋ฒ์งธ๋ก ๋ฐฉ๋ฌธํ (0,0)์ ๊ฐ์ด 1์ผ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ (0,0)๊ณผ ์ธ์ ํ 1์ธ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ฒ ๋ ํ
๋ฐ ๊ทธ ๋
ธ๋๋ ์ ๋ถ 2๊ฐ ๋ ๊ฒ์ด๋ค.
- ์ ๋ถ 2๋ก ๋ณํ nx, ny ๋ ๋ชจ๋ ํ์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ํ๋ฅผ ํ๋์ฉ ๋นผ์ค๋ฉด์ ๋ ๊ทธ์ ์ธ์ ํ ๊ฐ๋ค์ด 3์ผ๋ก ๋ณํ๋ค. ์ด ๊ณผ์ ์์ ๊ฒฐ๊ตญ 1๋ก ์ฐ๊ฒฐ๋์ด์๋ ๊ธธ(?)๋ง 3์ผ๋ก ๋ณํ ๊ฒ์ด๊ณ , ์ธ์ ํ ๊ธธ์ด ์์ ๊ฒฝ์ฐ 2์์ ๋จธ๋ฌด๋ฅด๊ฒ ๋๋ค.
from collections import deque
# ์ํ์ข์ฐ ์ดํด๋ณด๊ณ 1์ด๋ฉด ํด๋น์นธ์ผ๋ก ์ด๋, ๊ทธ๋ฆฌ๊ณ result +1 ํ๋ ๋ฐฉ์์ฌ์ฉ
#์
๋ ฅ ๋ฐ๊ธฐ
n, m = map(int, input().split())
graph = []
for i in range(n):
graph.append(list(map(int, input())))
# 1. ์ํ์ข์ฐ ์ด๋ ๋ฐฉํฅ ์ ์
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(x,y):
q = deque()
q.append((x,y)) # 0,0 ํ์ ๋ฃ๊ณ ์์
while q: # ํ๊ฐ ๋น๋๊น์ง
x, y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
# nx, ny๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๋ฌด์ํ๊ณ ๋ค์ i๋ก
if nx >= n or ny >= m or nx < 0 or ny < 0 :
continue
# nx, ny ๋
ธ๋๊ฐ ๊ดด๋ฌผ์นธ (0) ์ธ ๊ฒฝ์ฐ๋ ๋ค์ i๋ก
if graph[nx][ny] == 0:
continue
# ๊ฐ ์ ์๋ ๊ธธ์ธ 1์ด๋ฉด
if graph[nx][ny] == 1:
graph[nx][ny] = graph[x][y] + 1
q.append((nx,ny))
return graph[n-1][m-1]
print(bfs(0,0))
- ์ถ๋ ฅ
์ฒซ์จ์ค N M
๋์ฉ์ค๋ถํฐ N+1์ค๊น์ง ๋ฐฐ์ด์ ๋ํ ์
๋ ฅ๋ฐ์
๋ง์ง๋ง์ค์ ์ต์ข
์ถ๋ ฅ ๊ฐ