๐กsolutions )
๐ฌ ๋๊ธฐ์ค์ ๊ฐ ์นธ์ ํ๋์ ์ ์ ์ผ๋ก ๋ณด๊ณ , ์์์๋ค์ด ์๋ ์ ์ ์ ๊ธฐ์ค์ผ๋ก bfs ๊ทธ๋ํ ํ์์ ์งํํจ.
๐ฌ ๊ฐ ์ ์ ์์ ์ธ์ ํ์ฌ ์ฐ๊ฒฐ๋ ๊ฐ์ ๋ค์ ํ์ํ๋๋ฐ ํํฐ์ ์ด ์๋ ๊ฒฝ์ฐ๋ ์ง๋๊ฐ์ง ๋ชปํ๊ณ , ๊ฑฐ๋ฆฌ 2์ด๋ด์ ์ ์ ๋ค๋ง ์ดํด๋ณด๋ฉฐ ๋ค๋ฅธ ์์์์ ์ ๋ฌด๋ฅผ ํ์ธํจ.
๐ฌ ์ด๋ ์ง๋๊ฐ ์ ์ ์ ๋ค์ ์ง๋๊ฐ์ง ์๊ธฐ ์ํด visit ๋ฐฐ์ด์ ํตํด ์ค๋ณต์ ์ฒดํฌํจ.
๐จ๐ปcode )
from collections import deque
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] # ์ํ์ข์ฐ
def bfs(place, i, j):
visit = [[0]*5 for _ in range(5)]
q = deque()
q.append((i, j, 0))
visit[i][j] = 1
while q:
x, y, dist = q.popleft()
if 0 < dist < 3 and place[x][y] == 'P':
return False
if dist > 2:
break # ๊ฑฐ๋ฆฌ๊ฐ 3๋ถํฐ๋ ํ์ ์ค๋จ(๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์ ์งํจ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์)
for k in range(4):
nx, ny, nd = x + dx[k], y + dy[k], dist + 1
if 0 <= nx < 5 and 0 <= ny <5:
if place[nx][ny] != 'X' and not visit[nx][ny]: # ํํฐ์
์ด ์๋ ๊ฒฝ์ฐ๋ง ์๋๋ฉด ์ด๋๊ฐ๋ฅ
q.append((nx, ny, nd))
visit[nx][ny] = 1
return True
def solution(places):
answer = []
for place in places:
chk = 0
for i in range(len(place)):
for j in range(len(place[0])):
if place[i][j] == "P":
if not bfs(place, i, j):
answer.append(0)
chk = 1
break
if chk:
break
else:
answer.append(1)
return answer
๐description )
๋ฌธ์ ์ค๋ช
๊ฐ๋ฐ์๋ฅผ ํฌ๋งํ๋ ์ฃ ๋ฅด๋๊ฐ ์นด์นด์ค์ ๋ฉด์ ์ ๋ณด๋ฌ ์์ต๋๋ค.
์ฝ๋ก๋ ๋ฐ์ด๋ฌ์ค ๊ฐ์ผ ์๋ฐฉ์ ์ํด ์์์๋ค์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฌ์ ๋๊ธฐ๋ฅผ ํด์ผํ๋๋ฐ ๊ฐ๋ฐ ์ง๊ตฐ ๋ฉด์ ์ธ ๋งํผ
์๋์ ๊ฐ์ ๊ท์น์ผ๋ก ๋๊ธฐ์ค์ ๊ฑฐ๋ฆฌ๋ฅผ ๋๊ณ ์๋๋ก ์๋ดํ๊ณ ์์ต๋๋ค.
- ๋๊ธฐ์ค์ 5๊ฐ์ด๋ฉฐ, ๊ฐ ๋๊ธฐ์ค์ 5x5 ํฌ๊ธฐ์ ๋๋ค.
- ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์ํ์ฌ ์์์๋ค ๋ผ๋ฆฌ๋ ๋งจํดํผ ๊ฑฐ๋ฆฌ1๊ฐ 2 ์ดํ๋ก ์์ง ๋ง์ ์ฃผ์ธ์.
- ๋จ ์์์๊ฐ ์์์๋ ์๋ฆฌ ์ฌ์ด๊ฐ ํํฐ์ ์ผ๋ก ๋งํ ์์ ๊ฒฝ์ฐ์๋ ํ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด,
์ ๊ทธ๋ฆผ์ฒ๋ผ ์๋ฆฌ ์ฌ์ด์ ํํฐ์ ์ด ์กด์ฌํ๋ค๋ฉด ๋งจํดํผ ๊ฑฐ๋ฆฌ๊ฐ 2์ฌ๋ ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์งํจ ๊ฒ์ ๋๋ค. | ์ ๊ทธ๋ฆผ์ฒ๋ผ ํํฐ์ ์ ์ฌ์ด์ ๋๊ณ ์์ ๊ฒฝ์ฐ๋ ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์งํจ ๊ฒ์ ๋๋ค. | ์ ๊ทธ๋ฆผ์ฒ๋ผ ์๋ฆฌ ์ฌ์ด๊ฐ ๋งจํดํผ ๊ฑฐ๋ฆฌ 2์ด๊ณ ์ฌ์ด์ ๋น ํ ์ด๋ธ์ด ์๋ ๊ฒฝ์ฐ๋ ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์งํค์ง ์์ ๊ฒ์ ๋๋ค. |
์์์๊ฐ ์์์๋ ์๋ฆฌ(P)๋ฅผ ์๋ฏธํฉ๋๋ค. | ๋น ํ ์ด๋ธ(O)์ ์๋ฏธํฉ๋๋ค. | ํํฐ์ (X)์ ์๋ฏธํฉ๋๋ค. |
5๊ฐ์ ๋๊ธฐ์ค์ ๋ณธ ์ฃ ๋ฅด๋๋ ๊ฐ ๋๊ธฐ์ค์์ ์์์๋ค์ด ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์ ๊ธฐํค๊ณ ์๋์ง ์๊ณ ์ถ์ด์ก์ต๋๋ค. ์๋ฆฌ์ ์์์๋ ์์์๋ค์ ์ ๋ณด์ ๋๊ธฐ์ค ๊ตฌ์กฐ๋ฅผ ๋๊ธฐ์ค๋ณ๋ก ๋ด์ 2์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด places๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๊ฐ ๋๊ธฐ์ค๋ณ๋ก ๊ฑฐ๋ฆฌ๋๊ธฐ๋ฅผ ์งํค๊ณ ์์ผ๋ฉด 1์, ํ ๋ช ์ด๋ผ๋ ์งํค์ง ์๊ณ ์์ผ๋ฉด 0์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.