백준 2468. 안전 영역

2023. 9. 20. 12:52·백준

https://www.acmicpc.net/problem/2468

 

2468번: 안전 영역

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

www.acmicpc.net

import copy
def dfs(sti,stj):
    global cnt, max_cnt
    q=[(sti,stj)]
    arr[sti][stj] = 0
    while q:
        i,j = q.pop(0)
        for ti,tj in [(1,0),(-1,0),(0,1),(0,-1)]:
            ni, nj = i+ti, j+tj
            if 0<=ni<n and 0<=nj<n and arr[ni][nj]>rain: # 유효한 인덱스에 잠기지 않은 구역이라면
                q.append((ni,nj))
                arr[ni][nj] = 0
    cnt += 1
    if max_cnt <= cnt:
        max_cnt = cnt

n = int(input())
arr = [list(map(int,input().split())) for _ in range(n)]
copy_arr = copy.deepcopy(arr)   # 비 양이 늘어날 때마다 arr을 원상복구 해주기위해
cnt, max_cnt = 0,0  # 구역 개수/최대구역개수
rain = 0    # 비의 양
while True:
    flag = 0
    for i in range(n):
        for j in range(n):
            if arr[i][j] > rain:    # arr에서 잠기지 않은 곳 기준으로 dfs돌리기
                flag = 1
                dfs(i,j)
    if flag == 1:   # dfs를 돌릴게 있었으면(안전구역이 하나라도 있으면)
        rain += 1   # 비 양을 늘려 다시 while문을 돌린다
        cnt = 0     # cnt도 초기화 시켜줌
        arr = copy.deepcopy(copy_arr)   # arr도 원상복구 시켜줌
    else:   # 모두 잠긴다면?
        break   # 비 양을 늘려볼 필요 없이 끝내기
print(max_cnt)

단지번호 문제와 유사하게 visited을 따로 만들지 않고 풀기!

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 9205. 맥주 마시면서 걸어가기  (0) 2023.09.21
백준 2573. 빙산  (0) 2023.09.20
백준 1182. 부분수열의 합  (0) 2023.09.18
백준 15649. N과 M (1)  (0) 2023.09.15
백준 9663. N-Queen  (0) 2023.09.15
'백준' 카테고리의 다른 글
  • 백준 9205. 맥주 마시면서 걸어가기
  • 백준 2573. 빙산
  • 백준 1182. 부분수열의 합
  • 백준 15649. N과 M (1)
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    99클럽
    코딩테스트준비
    항해99
    Til
    개발자취업
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 2468. 안전 영역
상단으로

티스토리툴바