Algorithm/acmicpc.net
바쁘다 바빠 (#21736 헌내기는 친구가 필요해)
winney916
2024. 7. 5. 09:40
728x90
#21736 헌내기는 친구가 필요해 (https://www.acmicpc.net/problem/21736)
유난히 바쁜 날이라
만만해보이는 문제로 (class 4 중) 빠르게 풀었다.
n, m = map(int, input().split())
campus = []
visited = []
q = []
for i in range(n):
row = [x for x in input()]
v = [False for _ in range(m)]
for j in range(m):
# O는 빈 공간, X는 벽, I는 도연이, P는 사람이다
if row[j] == "I":
q.append([i, j])
v[j] = True
elif row[j] == "X":
v[j] = True
campus.append(row)
visited.append(v)
moves = [[-1, 0], [1, 0], [0, 1], [0, -1]]
def is_valid(y, x):
return (0 <= y < n) and (0 <= x < m)
answer = 0
while q:
y, x = q.pop(0)
# print(y, x)
if campus[y][x] == "P":
answer += 1
for my, mx in moves:
ny, nx = y + my, x + mx
if is_valid(ny, nx) and not visited[ny][nx]:
q.append([ny, nx])
visited[ny][nx] = True
if answer:
print(answer)
else:
print("TT")