[python]ํ๋ก๊ทธ๋๋จธ์ค - ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ
https://school.programmers.co.kr/learn/courses/30/lessons/1844
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
from collections import deque
def solution(maps):
answer = 0
r = len(maps)
c = len(maps[0])
#์ด๋ฏธ ์ง๋๊ฐ ๊ณณ ์ฒดํฌ
visit=[[-1]*c for _ in range(r)]
queue = deque()
#์์์ ์ถ๊ฐ
queue.append((0,0))
visit[0][0]=1
while queue:
y,x = queue.popleft()
#์ ํ ์ข ์ฐ
directy = [-1,1,0,0]
directx = [0,0,-1,1]
for i in range(4):
dy = directy[i] + y
dx = directx[i] + x
# ๋ฒ์ ์์ ์๊ณ ๊ธธ์ผ ๋
if 0<=dy<r and 0<=dx<c and maps[dy][dx] == 1:
#๋ฐฉ๋ฌธํ์ง ์์ ๊ธธ์ด๋ผ๋ฉด
if visit[dy][dx] == -1:
visit[dy][dx] = visit[y][x]+1
queue.append((dy,dx))
answer = visit[-1][-1]
return answer
'Problem Solving > PROGRAMMERS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์์ ํํ (0) | 2022.11.15 |
---|---|
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์์์ฐพ๊ธฐ (0) | 2022.11.06 |
[python]ํ๋ก๊ทธ๋๋จธ์ค - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.11.01 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ (0) | 2022.10.31 |
[python]ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2022.10.30 |
๋๊ธ