728x90
https://programmers.co.kr/learn/courses/30/lessons/81302
from collections import deque
def bfs(p):
start = []
# P 좌표 구함
for i in range(5):
for j in range(5):
if p[i][j] == 'P':
start.append([i, j])
for s in start:
queue = deque([s])
visited = [[0]*5 for i in range(5)]
distance = [[0]*5 for i in range(5)]
visited[s[0]][s[1]] = 1
while queue:
y, x = queue.popleft()
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx<5 and 0<=ny<5 and visited[ny][nx] == 0:
if p[ny][nx] =='O':
queue.append([ny, nx])
visited[ny][nx] = 1
distance[ny][nx] = distance[y][x] + 1
if p[ny][nx] == 'P' and distance[y][x] <= 1:
return 0
return 1
def solution(places):
answer = []
for i in places:
answer.append(bfs(i))
return answer
반응형
'전.py' 카테고리의 다른 글
[python] 백준 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.06.15 |
---|---|
[python] 백준 11047 동전 0 (0) | 2022.06.09 |
[python] 프로그래머스 수식 최대화 (0) | 2022.04.19 |
[python] 백준 13305 주유소 (0) | 2022.04.15 |
[python] 프로그래머스 소수 찾기 (0) | 2022.04.13 |