반응형
1743번: 음식물 피하기
첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다
www.acmicpc.net
코드
from collections import deque
def bfs(x,y):
global cnt
queue = deque()
queue.append((x,y))
while queue:
x,y = queue.popleft()
for i in range(4):
nx = x+dx[i]
ny = y+dy[i]
if 1<=nx<=n and 1<=ny<=m and graph[nx][ny] == 1:
graph[nx][ny] = 0
cnt += 1
queue.append((nx,ny))
n,m,k = map(int,input().split())
graph = [[0]*(m+1) for _ in range(n+1)]
for _ in range(k):
r,c = map(int,input().split())
graph[r][c] = 1
dx = [1,-1,0,0]
dy = [0,0,1,-1]
ans = 0
for i in range(1,n+1):
for j in range(1,m+1):
if graph[i][j] == 1:
cnt = 0
bfs(i,j)
ans = max(ans,cnt)
print(ans)
반응형
'알고리즘 > 그래프 탐색' 카테고리의 다른 글
[백준][Python] 1446번 지름길 (0) | 2022.12.30 |
---|---|
[백준][Python] 2583번 영역 구하기 (0) | 2022.12.01 |
[백준][Python] 10026번 적록색약 (0) | 2022.11.29 |
[백준][Python] 14502번 연구소 (0) | 2022.11.09 |
[백준][Python] 1697번 숨바꼭질 (0) | 2022.10.26 |
댓글