{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉BFS/DFS〉조수 지도의 드러난 구역 수← 이전다음 →
#034 · BFS/DFS중간연결 요소,격자 탐색

조수 지도의 드러난 구역 수

문제

해양 조사팀이 갯벌 지역의 고도 지도를 만들었습니다. heights[r][c]는 r행 c열 칸의 고도(cm)입니다.

조사 시각의 수위 level이 주어지면, 고도가 level 이상인 칸은 물 위로 드러나고 level보다 낮은 칸은 물에 잠깁니다. 드러난 칸들이 상하좌우로 맞닿아 있으면 하나의 구역으로 봅니다(대각선으로만 닿은 것은 이어진 것으로 보지 않습니다).

고도 지도 heights와 수위 level이 주어질 때, 물 위로 드러난 구역의 개수를 반환하는 solution(heights, level) 함수를 작성하세요.

예시

지도가 다음과 같을 때,

3 1 4 4 2
2 1 1 5 1
4 4 2 3 3
1 2 4 1 3
level 결과
3 4
4 3
1 1
6 0

level = 3 설명: 드러난 칸은 다음 # 자리입니다.

# . # # .
. . . # .
# # . # #
. . # . #

왼쪽 위의 (0,0), 오른쪽에서 아래로 이어지는 큰 덩어리, (2,0)-(2,1), 그리고 홀로 떨어진 (3,2)까지 모두 4개입니다.

level = 1 설명: 모든 칸의 고도가 1 이상이라 지도 전체가 하나의 구역이 됩니다.

level = 6 설명: 6cm 이상인 칸이 하나도 없어 구역이 생기지 않습니다.

제약 조건

  • 1 ≤ heights.length, heights[0].length ≤ 300
  • 1 ≤ heights[r][c] ≤ 1,000,000,000 (정수)
  • 1 ≤ level ≤ 1,000,000,000 (정수)
  • 모든 행의 길이는 같습니다.

시간 복잡도 목표: O(행 × 열)

공간 복잡도 목표: O(행 × 열)

테스트 케이스

예시 1: 수위 3 → 구역 4개
입력: heights = [[3,1,4,4,2],[2,1,1,5,1],[4,4,2,3,3],[1,2,4,1,3]], level = 3
출력: 4
예시 2: 수위 4 → 구역 3개
입력: heights = [[3,1,4,4,2],[2,1,1,5,1],[4,4,2,3,3],[1,2,4,1,3]], level = 4
출력: 3
예시 3: 수위 1 → 지도 전체가 한 구역
입력: heights = [[3,1,4,4,2],[2,1,1,5,1],[4,4,2,3,3],[1,2,4,1,3]], level = 1
출력: 1
예시 4: 수위 6 → 드러난 칸 없음
입력: heights = [[3,1,4,4,2],[2,1,1,5,1],[4,4,2,3,3],[1,2,4,1,3]], level = 6
출력: 0
엣지: 1×1 지도, 고도 = 수위
입력: heights = [[5]], level = 5
출력: 1
엣지: 1×1 지도, 고도 < 수위
입력: heights = [[5]], level = 6
출력: 0
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.