๐กsolutions )
๐ฌ BFS ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์
๐ฌ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ณ , ๋ ์ด๋ฏธ ์ง๋ฌ๋ ๊ฒฝ๋ก๋ฅผ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์๊ธฐ ์ํด visit ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๊ธฐ
๐จ๐ปcode )
from collections import deque
def solution(maps):
answer = 0
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
q = deque([(0, 0)])
visit = [[0]*len(maps[0]) for _ in range(len(maps))]
visit[0][0] = 1
maps[0][0] = 0
while q:
x, y = q.popleft()
for k in range(4):
nx, ny = x + dx[k], y + dy[k]
if 0 <= nx < len(maps) and 0<= ny < len(maps[0]):
if maps[nx][ny] == 1 and not visit[nx][ny]:
visit[nx][ny] = visit[x][y] + 1
q.append((nx, ny))
answer = -1
if visit[-1][-1]:
return visit[-1][-1]
return answer
๐description )
๋ฌธ์ ์ค๋ช
ROR ๊ฒ์์ ๋ ํ์ผ๋ก ๋๋์ด์ ์งํํ๋ฉฐ, ์๋ ํ ์ง์์ ๋จผ์ ํ๊ดดํ๋ฉด ์ด๊ธฐ๋ ๊ฒ์์ ๋๋ค. ๋ฐ๋ผ์, ๊ฐ ํ์ ์๋ ํ ์ง์์ ์ต๋ํ ๋นจ๋ฆฌ ๋์ฐฉํ๋ ๊ฒ์ด ์ ๋ฆฌํฉ๋๋ค.
์ง๊ธ๋ถํฐ ๋น์ ์ ํ ํ์ ํ์์ด ๋์ด ๊ฒ์์ ์งํํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์์ 5 x 5 ํฌ๊ธฐ์ ๋งต์, ๋น์ ์ ์บ๋ฆญํฐ๊ฐ (ํ: 1, ์ด: 1) ์์น์ ์๊ณ , ์๋ ํ ์ง์์ (ํ: 5, ์ด: 5) ์์น์ ์๋ ๊ฒฝ์ฐ์ ์์์ ๋๋ค.
์ ๊ทธ๋ฆผ์์ ๊ฒ์์ ๋ถ๋ถ์ ๋ฒฝ์ผ๋ก ๋งํ์์ด ๊ฐ ์ ์๋ ๊ธธ์ด๋ฉฐ, ํฐ์ ๋ถ๋ถ์ ๊ฐ ์ ์๋ ๊ธธ์
๋๋ค. ์บ๋ฆญํฐ๊ฐ ์์ง์ผ ๋๋ ๋, ์, ๋จ, ๋ถ ๋ฐฉํฅ์ผ๋ก ํ ์นธ์ฉ ์ด๋ํ๋ฉฐ, ๊ฒ์ ๋งต์ ๋ฒ์ด๋ ๊ธธ์ ๊ฐ ์ ์์ต๋๋ค.
์๋ ์์๋ ์บ๋ฆญํฐ๊ฐ ์๋ ํ ์ง์์ผ๋ก ๊ฐ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํ๋ด๊ณ ์์ต๋๋ค.
- ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ 11๊ฐ์ ์นธ์ ์ง๋์ ์๋ ํ ์ง์์ ๋์ฐฉํ์ต๋๋ค.
- ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ 15๊ฐ์ ์นธ์ ์ง๋์ ์๋ํ ์ง์์ ๋์ฐฉํ์ต๋๋ค.
์ ์์์์๋ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์๋ํ ์ง์์ ๋์ฐฉํ๋ ๋ฐฉ๋ฒ์ ์์ผ๋ฏ๋ก, ์ด ๋ฐฉ๋ฒ์ด ์๋ ํ ์ง์์ผ๋ก ๊ฐ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ง์ฝ, ์๋ ํ์ด ์์ ์ ํ ์ง์ ์ฃผ์์ ๋ฒฝ์ ์ธ์๋์๋ค๋ฉด ์๋ ํ ์ง์์ ๋์ฐฉํ์ง ๋ชปํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋น์ ์ ์บ๋ฆญํฐ๋ ์๋ ํ ์ง์์ ๋์ฐฉํ ์ ์์ต๋๋ค.
๊ฒ์ ๋งต์ ์ํ maps๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์บ๋ฆญํฐ๊ฐ ์๋ ํ ์ง์์ ๋์ฐฉํ๊ธฐ ์ํด์ ์ง๋๊ฐ์ผ ํ๋ ์นธ์ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๋จ, ์๋ ํ ์ง์์ ๋์ฐฉํ ์ ์์ ๋๋ -1์ return ํด์ฃผ์ธ์.
์ ํ์ฌํญ
- maps๋ n x m ํฌ๊ธฐ์ ๊ฒ์ ๋งต์ ์ํ๊ฐ ๋ค์ด์๋ 2์ฐจ์ ๋ฐฐ์ด๋ก, n๊ณผ m์ ๊ฐ๊ฐ 1 ์ด์ 100 ์ดํ์ ์์ฐ์์
๋๋ค.
- n๊ณผ m์ ์๋ก ๊ฐ์ ์๋, ๋ค๋ฅผ ์๋ ์์ง๋ง, n๊ณผ m์ด ๋ชจ๋ 1์ธ ๊ฒฝ์ฐ๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- maps๋ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, 0์ ๋ฒฝ์ด ์๋ ์๋ฆฌ, 1์ ๋ฒฝ์ด ์๋ ์๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค.
- ์ฒ์์ ์บ๋ฆญํฐ๋ ๊ฒ์ ๋งต์ ์ข์ธก ์๋จ์ธ (1, 1) ์์น์ ์์ผ๋ฉฐ, ์๋๋ฐฉ ์ง์์ ๊ฒ์ ๋งต์ ์ฐ์ธก ํ๋จ์ธ (n, m) ์์น์ ์์ต๋๋ค.