[2468] 안전영역(BFS)

2023. 5. 8. 16:06·Coding Test/Graph
728x90
 

2468번: 안전 영역

재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는

www.acmicpc.net

 

6 8 2 6 2
3 2 3 4 6
6 7 3 3 2
7 2 5 3 6
8 9 5 2 7

 

"""
어떤 지역의 높이 정보를 파악, 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역 최대 몇 개인지 조사
비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠김
안전영역 : 물에 잠기지 않는 지점들이 위, 아래, 오른쪽 혹은 왼쪽으로 인접해 있으며 그 크기가 최대인 영역

높이가 4 이하인 모든 지점이 물에 잠김
내리는 비의 양에 따른 모든 경우를 다 조사해 보면 물에 잠기지 않는 안전한 영역의 개수 중에서 최대인 경우는 5
높이가 6이하인 지점을 모두 잠기게 만드는 많은 비가 내리면 물에잠기지 않는 안전한 영역은 네 개


과 열의 개수를 나타내는 수 N
둘째 줄부터 N 개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보
높이는 1이상 100 이하의 정수

5
6 8 2 6 2
3 2 3 4 6
6 7 3 3 2
7 2 5 3 6
8 9 5 2 7
"""

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

# 네 방향 탐색을 위한 상수 → ↓ ← ↑
dr=[0,1,0,-1]
dc=[1,0,-1,0]

n=int(input())
graph=[list(map(int, input().split())) for _ in range(n)]
# print(graph)

def BFS(i,j,h):
    queue=deque()
    queue.append([i,j])
    visited[i][j]=True

    while queue:
        r,c=queue.popleft()
        for d in range(4):
            nextX= r+dr[d]
            nextY= c+dc[d]
            if 0<=nextX<n and 0<=nextY<n and not visited[nextX][nextY] and graph[nextX][nextY] > h:
                visited[nextX][nextY] = True
                queue.append([nextX, nextY])

res=0
# 구분 작업 수행
for h in range(100):
    cnt = 0
    visited = [[False] * n for _ in range(n)]
    for i in range(n):
        for j in range(n):
            if not visited[i][j] and graph[i][j]>h:
                cnt+=1
                BFS(i,j,h)
    res=max(res,cnt)

print(res)

 

 

 

 

728x90
저작자표시
'Coding Test/Graph' 카테고리의 다른 글
  • [7576] 토마토 (BFS)
  • [2468] 안전영역(DFS)
  • 섬나라 아일랜드(BFS)
  • 단지번호 붙이기(DFS)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DFS
    BFS
    재귀
    백준
    구현
    알고리즘
    힙
    최소신장트리
    월간코드챌린지
    DP
    LIS
    파이썬
    그리디
    동적계획법
    큐
    플로이드워셜
    그래프
    프로그래머스
    이분탐색
    조합
    자료구조
    최대공약수
    Algorithm
    덱
    정렬
    다익스트라
    스택
    트리
    최단거리
    구간합
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
[2468] 안전영역(BFS)
상단으로

티스토리툴바