Search

๊น€๋ฏผ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
240
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
from collections import deque def solution(maps): n, m=len(maps), len(maps[0]) dx=[1, -1, 0, 0] dy=[0, 0, -1, 1] visit=[[-1]*m for _ in range(n)] q=deque() q.append([0, 0]) visit[0][0]=1 while q : x, y=q.popleft() for i in range(4): nx=x+dx[i] ny=y+dy[i] if 0<=nx<n and 0<=ny<m and maps[nx][ny]==1 : if visit[nx][ny]==-1: q.append([nx, ny]) visit[nx][ny]=visit[x][y]+1 return visit[n-1][m-1]
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
1.
n, m์„ ์ฐพ์•„ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
2.
์ƒํ•˜์ขŒ์šฐ ์ด๋™์„ ์œ„ํ•ด dx, dy ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
a.
๋ฐฉ๋ฌธํ•œ ์ขŒํ‘œ์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด visit[n][m] ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
b.
์ฒ˜์Œ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜์ธ (0, 0)์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.
visit[0][0]์„ 1๋กœ ์ดˆ๊ธฐํ™”์‹œํ‚จ๋‹ค. deque์— (0, 0)์„ ์‚ฝ์ž…ํ•œ๋‹ค.
3.
deque์˜ ์™ผ์ชฝ ์›์†Œ๋ฅผ popํ•œ๋‹ค.
a.
ํ•ด๋‹น ์ขŒํ‘œ์—์„œ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ด๋™์„ ํ•ด๋ณธ๋‹ค.
b.
์ด๋™ํ•  ์ขŒํ‘œ๊ฐ€ maps์˜ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๊ณ  ํ˜„์žฌ ์ขŒํ‘œ๊ฐ€ ๋ฒฝ์ด ์•„๋‹ˆ๊ณ  ๋ฐฉ๋ฌธํ•œ ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ
deque์— ์ด๋™ํ•  ์ขŒํ‘œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ํ•œ์นธ ๋” ์ด๋™ํ–ˆ์œผ๋ฏ€๋กœ ํ˜„์žฌ ์ขŒํ‘œ์—์„œ +1ํ•œ ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.
4.
visit์˜ ๋งˆ์ง€๋ง‰ ์œ„์น˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.