2468 안전영역

장종민·2023년 8월 21일

boj

목록 보기
16/22



from collections import deque  #bfs
 
n = int(input())
max_num = 0
graph = []
 
for _ in range(n):
    low = list(map(int, input().split()))
    graph.append(low)
 
    for i in low:
        if i > max_num:
            max_num = i  # 최대값 , 제일 높은 지대
 
dx = [0, 0, -1, 1]
dy = [1, -1, 0, 0]
 
def bfs(x, y, num):
    queue = deque()
    queue.append((x, y))
    visited[x][y] = 1
 
    while queue:
        x, y = queue.popleft()
 
        for i in range(4):
            nx = dx[i] + x
            ny = dy[i] + y
 
            if 0 <= nx < n and 0 <= ny < n:
                if graph[nx][ny] > num and visited[nx][ny] == 0:
                    visited[nx][ny] = 1  # 안전지대라면 1로 방문처리
                    queue.append((nx, ny))
 
result = []
 
for i in range(max_num):
    cnt = 0
    visited = [[0]*n for _ in range(n)]
    for j in range(n):
        for k in range(n):
            if graph[j][k] > i and visited[j][k] == 0:
                bfs(j, k, i)
                cnt += 1
    result.append(cnt)
 
print(max(result))
profile
비전공 오르미부트캠프 2기

0개의 댓글