Trulyawesome

1743(음식물 피하기) python 본문

알고리즘/백준

1743(음식물 피하기) python

ethkelitt 2022. 12. 30. 14:02

import sys 
from collections import deque 
input = sys.stdin.readline

n,m,k = map(int, input().split())

graph = [[0]*m for _ in range(n)]
visited = [[0]*m for _ in range(n)]

dx = [1,0,-1,0]
dy = [0,1,0,-1]

def bfs(a,b):
    count = 1 
    q = deque() 
    q.append([a,b])
    visited[a][b] = 1 

    while q:
        x,y = q.popleft()

        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]

            if 0<=nx<n and 0<=ny<m and visited[nx][ny] == 0:
                if graph[nx][ny] == 1:
                    q.append((nx,ny))
                    count += 1 
                    visited[nx][ny] = 1 
    return count 


for _ in range(k):
    r,c = map(int, input().split())
    graph[r-1][c-1] = 1


result = 0 
for i in range(n):
    for j in range(m):
        if graph[i][j] == 1:
            num = bfs(i,j)
            result = max(result,num)
print(result)

전형적인 BFS 기초문제