1. ๋ฌธ์ (URL)
"""
์์ผ์ด๋ ์๋ช
๊ณผํ์ ๊ด์ฌ์ด ์๊ฒจ ์๊ฐ๋ฏธ๋ฅผ ์ฐ๊ตฌํ๊ณ ์์๋ค.
์๊ฐ๋ฏธ๋ฅผ ์ ์ฌํ ์ดํด๋ณด๋ ์ค ํน๋ณํ ์ฑ์คํด ๋ณด์ด๋ ๊ฐ๋ฏธ๊ฐ ์์๋๋ฐ,
๊ทธ ๊ฐ๋ฏธ๋ ๊ฐ๋ฏธ๊ตด์์ ๋์ ๋จน์ด๊น์ง ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ๋ก ์ด๋ํ๋ ๊ฒ์ด์๋ค.
๊ฐ๋ฏธ๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ด๋ค๊ฐ ๋ฒฝ์ ๋ง๋๋ฉด ์๋์ชฝ์ผ๋ก ์์ง์ฌ ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ๋ก ์์ง์๋ค.
(์ค๋ฅธ์ชฝ์ ๊ธธ์ด ๋ํ๋๋ฉด ๋ค์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ธ๋ค.)
์ด์ ํธ๊ธฐ์ฌ์ด ์๊ธด ์์ผ์ด๋ ๊ทธ ๊ฐ๋ฏธ๋ฅผ ๋ฏธ๋ก ์์์ ๋ฃ๊ณ ์ดํด๋ณด๊ธฐ ์์ํ์๋ค.
๋ฏธ๋ก ์์์ ๋ฃ์ ๊ฐ๋ฏธ๋ ๋จน์ด๋ฅผ ์ฐพ์๊ฑฐ๋, ๋ ์ด์ ์์ง์ผ ์ ์์ ๋๊น์ง
์ค๋ฅธ์ชฝ ๋๋ ์๋์ชฝ์ผ๋ก๋ง ์์ง์๋ค.
๋ฏธ๋ก ์์์ ๊ตฌ์กฐ๊ฐ 0(๊ฐ ์ ์๋ ๊ณณ), 1(๋ฒฝ ๋๋ ์ฅ์ ๋ฌผ)๋ก ์ฃผ์ด์ง๊ณ ,
๋จน์ด๊ฐ 2๋ก ์ฃผ์ด์ง ๋, ์ฑ์คํ ๊ฐ๋ฏธ์ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์์ํด๋ณด์.
๋จ, ๋งจ ์๋์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ๋์ฐฉํ ๊ฒฝ์ฐ, ๋ ์ด์ ์์ง์ผ ์ ์๋ ๊ฒฝ์ฐ, ๋จน์ด๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ์๋
๋์ด์ ์ด๋ํ์ง ์๊ณ ๊ทธ ๊ณณ์ ๋จธ๋ฌด๋ฅธ๋ค๊ณ ๊ฐ์ ํ๋ค.
๋ฏธ๋ก ์์์ ํ
๋๋ฆฌ๋ ๋ชจ๋ ๋ฒฝ์ผ๋ก ๋์ด ์์ผ๋ฉฐ,
๊ฐ๋ฏธ์ง์ ๋ฐ๋์ (2, 2)์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฏธ๋ (2, 2)์์ ์ถ๋ฐํ๋ค.
"""
2. ์ฝ๋ ๊ตฌํ
"""
[๋ฌธ์ ]
์์ผ์ด๋ ์๋ช
๊ณผํ์ ๊ด์ฌ์ด ์๊ฒจ ์๊ฐ๋ฏธ๋ฅผ ์ฐ๊ตฌํ๊ณ ์์๋ค.
์๊ฐ๋ฏธ๋ฅผ ์ ์ฌํ ์ดํด๋ณด๋ ์ค ํน๋ณํ ์ฑ์คํด ๋ณด์ด๋ ๊ฐ๋ฏธ๊ฐ ์์๋๋ฐ,
๊ทธ ๊ฐ๋ฏธ๋ ๊ฐ๋ฏธ๊ตด์์ ๋์ ๋จน์ด๊น์ง ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ๋ก ์ด๋ํ๋ ๊ฒ์ด์๋ค.
๊ฐ๋ฏธ๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ด๋ค๊ฐ ๋ฒฝ์ ๋ง๋๋ฉด ์๋์ชฝ์ผ๋ก ์์ง์ฌ ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ๋ก ์์ง์๋ค.
(์ค๋ฅธ์ชฝ์ ๊ธธ์ด ๋ํ๋๋ฉด ๋ค์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ธ๋ค.)
์ด์ ํธ๊ธฐ์ฌ์ด ์๊ธด ์์ผ์ด๋ ๊ทธ ๊ฐ๋ฏธ๋ฅผ ๋ฏธ๋ก ์์์ ๋ฃ๊ณ ์ดํด๋ณด๊ธฐ ์์ํ์๋ค.
๋ฏธ๋ก ์์์ ๋ฃ์ ๊ฐ๋ฏธ๋ ๋จน์ด๋ฅผ ์ฐพ์๊ฑฐ๋, ๋ ์ด์ ์์ง์ผ ์ ์์ ๋๊น์ง
์ค๋ฅธ์ชฝ ๋๋ ์๋์ชฝ์ผ๋ก๋ง ์์ง์๋ค.
๋ฏธ๋ก ์์์ ๊ตฌ์กฐ๊ฐ 0(๊ฐ ์ ์๋ ๊ณณ), 1(๋ฒฝ ๋๋ ์ฅ์ ๋ฌผ)๋ก ์ฃผ์ด์ง๊ณ ,
๋จน์ด๊ฐ 2๋ก ์ฃผ์ด์ง ๋, ์ฑ์คํ ๊ฐ๋ฏธ์ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์์ํด๋ณด์.
๋จ, ๋งจ ์๋์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ๋์ฐฉํ ๊ฒฝ์ฐ, ๋ ์ด์ ์์ง์ผ ์ ์๋ ๊ฒฝ์ฐ, ๋จน์ด๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ์๋
๋์ด์ ์ด๋ํ์ง ์๊ณ ๊ทธ ๊ณณ์ ๋จธ๋ฌด๋ฅธ๋ค๊ณ ๊ฐ์ ํ๋ค.
๋ฏธ๋ก ์์์ ํ
๋๋ฆฌ๋ ๋ชจ๋ ๋ฒฝ์ผ๋ก ๋์ด ์์ผ๋ฉฐ,
๊ฐ๋ฏธ์ง์ ๋ฐ๋์ (2, 2)์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฏธ๋ (2, 2)์์ ์ถ๋ฐํ๋ค.
"""
# ๋ฏธ๋ก์์ ์ด๊ธฐํ
box = []
# ๋ฏธ๋ก์์ ๋ชจ์ ์
๋ ฅ ์ฒ๋ฆฌ
for _ in range(10):
box.append(list(map(int, input().split())))
# ๊ฐ๋ฏธ์ ์์ง์์ ๊ตฌํํ๊ธฐ ์ํด BFS ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ
from collections import deque
# ๊ฐ๋ฏธ๊ฐ ์์ง์ด๋ ๋ฐฉํฅ
dx = [0, 1]
dy = [1, 0]
# deque ์ ์ธ
q = deque()
# ๊ฐ๋ฏธ๊ตด ์์น ์ง์
# ๋ฆฌ์คํธ์ index ์์์ 0์ด๊ธฐ ๋๋ฌธ์ -1 ์ฒ๋ฆฌ
box[1][1] = 9
q.append((1, 1))
# ๊ฐ๋ฏธ ์ด๋๋ฐฉํฅ ๊ธฐ๋กํ๋ ๋ก์ง ์ํ
while q:
x, y = q.popleft()
for i in range(2):
nx = x + dx[i]; ny = y + dy[i]
# ๊ฐ๋ฏธ์ด๋์ฌ๋ถ ํ์ธ
if (box[nx][ny] == 0):
box[nx][ny] = 9
q.append((nx, ny))
break
elif (box[nx][ny] == 2):
# ๋จน์ด์ ์์น๋ฅผ ๋ฐ๊ฒฌํ ๊ฒฝ์ฐ
box[nx][ny] = 9
q.clear()
break
# ์ ๋ต ์ถ๋ ฅ
for i in range(10):
for j in range(10):
if j == 9:
print(box[i][j])
else:
print(box[i][j], end=' ')
3. ์ฐธ๊ณ
- Python deque์ ๊ดํ ์ค๋ช
์ถ์ฒ : ๊ฐ์ธ ํฐ์คํ ๋ฆฌ
[GitHub ์์ค]
'๐ ์๊ณ ๋ฆฌ์ฆ > CodeUp_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6097 : [๊ธฐ์ด-๋ฆฌ์คํธ] ์คํ๊ณผ์ ๋ฝ๊ธฐ (0) | 2024.05.30 |
---|---|
6096 : [๊ธฐ์ด-๋ฆฌ์คํธ] ๋ฐ๋์ ์ญ์ ๋ค์ง๊ธฐ (0) | 2024.05.30 |
6085 : [๊ธฐ์ด-์ข ํฉ] ๊ทธ๋ฆผ ํ์ผ ์ ์ฅ์ฉ๋ ๊ณ์ฐํ๊ธฐ (0) | 2024.05.28 |
6081 : [๊ธฐ์ด-์ข ํฉ] 16์ง์ ๊ตฌ๊ตฌ๋จ ์ถ๋ ฅํ๊ธฐ (0) | 2024.05.27 |
6079 : [๊ธฐ์ด-์ข ํฉ] ์ธ์ ๊น์ง ๋ํด์ผ ํ ๊น? (0) | 2024.05.24 |