백준 문제 풀이
백준 2468 파이썬 python : 안전 영역 @@황소처럼 우직하게@@ 시간 재면서 풀자
hjp845
2020. 4. 26. 02:45
반응형
10분컷
import sys
input = sys.stdin.readline
n = int(input())
mat = []
for i in range(n):
mat.append(list(map(int, input().split())))
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
def bfs(sy, sx, visited, cnt, wh):
visited[sy][sx] = 1
q = []
q.append([sy, sx])
while q:
y, x = q.pop(0)
for i in range(4):
ny = y + dy[i]
nx = x + dx[i]
if 0 <= nx < n and 0 <= ny < n and visited[ny][nx] == 0 and mat[ny][nx] > wh:
visited[ny][nx] = cnt
q.append([ny, nx])
ans = 1
wh = 1
while True:
cnt = 1
visited = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
if visited[i][j] == 0 and mat[i][j] > wh:
bfs(i, j, visited, cnt, wh)
cnt += 1
if cnt - 1 == 0:
break
ans = max(ans, cnt - 1)
wh += 1
print(ans)
반응형