Skip to content

Commit 77269f4

Browse files
committed
1 parent f7aefa2 commit 77269f4

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
from collections import deque
3+
4+
def bfs(places, i, j, k):
5+
queue = deque()
6+
queue.append((j, k, 0)) # row, col, dist
7+
visited = [[False] * 5 for _ in range(5)]
8+
visited[j][k] = True
9+
10+
dx = [-1, 1, 0, 0]
11+
dy = [0, 0, -1, 1]
12+
13+
while queue:
14+
row, col, dist = queue.popleft()
15+
16+
if dist != 0 and places[i][row][col] == 'P':
17+
return 1
18+
19+
if dist == 2:
20+
continue
21+
22+
for d in range(4):
23+
nr = row + dx[d]
24+
nc = col + dy[d]
25+
26+
if 0 <= nr < 5 and 0 <= nc < 5 and not visited[nr][nc]:
27+
if places[i][nr][nc] != 'X':
28+
visited[nr][nc] = True
29+
queue.append((nr, nc, dist + 1))
30+
31+
return 0
32+
33+
34+
def solution(places):
35+
answer = []
36+
37+
for i in range(5): # 5 rooms
38+
violated = False
39+
for j in range(5):
40+
for k in range(5):
41+
if places[i][j][k] == 'P':
42+
if bfs(places, i, j, k):
43+
violated = True
44+
break
45+
if violated:
46+
break
47+
answer.append(0 if violated else 1)
48+
49+
return answer
50+
51+

0 commit comments

Comments
 (0)