본문 바로가기
알고리즘/그래프 탐색

[백준][Python] 1743번 음식물 피하기

by 임짠짠 2022. 12. 20.
반응형
 

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)
반응형

댓글