~๋ชฉ์ฐจ~
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/1844
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- BFS๋ก ํ์ด
- ํจ์จ์ฑ ํฅ์
1) ์ํ๋ ์์น์ ๋๋ฌ์ ๋ฐ๋ก ๋ฆฌํด
2) ๊ฐ ์์ ์ธ ์์น ๋ฏธ๋ฆฌ ๋ฐฉ๋ฌธ ํ์โญ๏ธ
๊ฐ ์์ ์ธ ์์น๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฉ๋ฌธ ํ์ํ๋ ๊ฒ์ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด 3x3 map์ด ์กด์ฌํ ๋ ์์์์น๋ 0์ผ๋ก ์ค์ ๋๊ณ ์ด๋ก์, ๋ ธ๋์ ํํธ๋ฅผ que์ ๋ฃ์ ๊ฒ์ ๋๋ค.
0 | ๐(1) | 0 |
๐(1) | โค๏ธ(1) | 0 |
0 | 1 | 1 |
------- ์ด๋ ๊ฒ ๋ค์ด๊ฐ ์์ ๋ ๋ ธ๋์์ด ๋จผ์ ๋์ค๋ฉด์ ๋นจ๊ฐ์์ ๋ฃ์ ๊ฒ์ ๋๋ค.
๐๐ ๋นจ๊ฐ์์ ๋์ฐฉ ํ์ ํ์ง ์์๋ค๋ฉด ์ด๋ก์์ด ๋์ค๋ฉด์ ๋ค์ ๋นจ๊ฐ์์ que์ ๋ฃ์ํ ์ง์
------- ๋ฐฉ๋ฌธํ ์์น์ธ ๋นจ๊ฐํํธ์ ๋ฏธ๋ฆฌ ๋ฐฉ๋ฌธํ์(0)์ ํจ์ผ๋ก์จ ์ค๋ณต์ ํผํ ์ ์์ต๋๋ค!
<์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค with Python> ์์ ์ chapter5 BFS/DFS ๋ฌธ์ ์ ์ ์ฌํ๋ฏ๋ก ๊ฐ์ด ํ์ด๋ณด๋๋กํ์!
์์ฑ ์ฝ๋
from collections import deque
def solution(maps):
n, m = len(maps), len(maps[0]) # ๋งต ํฌ๊ธฐ
dr = [1, -1, 0, 0] # down, up, right, left
dc = [0, 0, 1, -1]
que = deque()
que.append((1, 0, 0)) # ์ด๋ ์นธ, row, column
maps[0][0] = 0 # ์์ ์์น ๋ฐฉ๋ฌธ ํ์
# BFS
while que:
count, i, j = que.popleft()
for k in range(4):
r = i + dr[k]
c = j + dc[k]
if r == n - 1 and c == m - 1: # ๊ฐ์ฅ ๋จผ์ ๋์ฐฉํ ๊ฒ์ด ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ
return count + 1
if -1 < r < n and -1 < c < m and maps[r][c]: # ๋งต์ ๋์ด๊ฐ์ง ์๊ณ 1์ด๋ผ๋ฉด
que.append((count + 1, r, c))
maps[r][c] = 0 # ๋ฐฉ๋ฌธํ ์์น๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฉ๋ฌธ ํ์(ํจ์จ์ฑ ํฌ์ธํธ)
return -1 # ์ ๋ถ ์ํํด๋ ๋๋ฌํ์ง ๋ชปํจ
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
REFERENCE
https://velog.io/@op032/ํ๋ก๊ทธ๋๋จธ์ค-๊ฒ์-๋งต-์ต๋จ๊ฑฐ๋ฆฌ
https://hoons-dev.tistory.com/category/๐%20์ฝ๋ฉํ ์คํธ%20๋๋น%20%3A%20PS
'๐๋ฌธ์ ํ์ด > ๐งฉProgrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ํคํจ๋ ๋๋ฅด๊ธฐ | 2020 ์นด์นด์ค ์ธํด์ญ (2) | 2023.05.03 |
---|---|
[Python] ํ๋ก๊ทธ๋๋จธ์ค H-Index (0) | 2023.04.22 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๋คํธ์ํฌ | BFS/DFS (0) | 2023.04.19 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ํ๊ฒ ๋๋ฒ | DFS/BFS (0) | 2023.04.19 |
[Programmers] ํ๋ก๊ทธ๋๋จธ์ค ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ | Level 1 (0) | 2023.03.29 |