|
| 1 | +# [Silver I] 안전 영역 - 2468 |
| 2 | + |
| 3 | +[문제 링크](https://www.acmicpc.net/problem/2468) |
| 4 | + |
| 5 | +### 성능 요약 |
| 6 | + |
| 7 | +메모리: 32440 KB, 시간: 1344 ms |
| 8 | + |
| 9 | +### 분류 |
| 10 | + |
| 11 | +너비 우선 탐색(bfs), 브루트포스 알고리즘(bruteforcing), 깊이 우선 탐색(dfs), 그래프 이론(graphs), 그래프 탐색(graph_traversal) |
| 12 | + |
| 13 | +### 문제 설명 |
| 14 | + |
| 15 | +<p>재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다.</p> |
| 16 | + |
| 17 | +<p>어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다.</p> |
| 18 | + |
| 19 | +<table class="table table-bordered table-center-20 td-center"> |
| 20 | + <tbody> |
| 21 | + <tr> |
| 22 | + <td>6</td> |
| 23 | + <td>8</td> |
| 24 | + <td>2</td> |
| 25 | + <td>6</td> |
| 26 | + <td>2</td> |
| 27 | + </tr> |
| 28 | + <tr> |
| 29 | + <td>3</td> |
| 30 | + <td>2</td> |
| 31 | + <td>3</td> |
| 32 | + <td>4</td> |
| 33 | + <td>6</td> |
| 34 | + </tr> |
| 35 | + <tr> |
| 36 | + <td>6</td> |
| 37 | + <td>7</td> |
| 38 | + <td>3</td> |
| 39 | + <td>3</td> |
| 40 | + <td>2</td> |
| 41 | + </tr> |
| 42 | + <tr> |
| 43 | + <td>7</td> |
| 44 | + <td>2</td> |
| 45 | + <td>5</td> |
| 46 | + <td>3</td> |
| 47 | + <td>6</td> |
| 48 | + </tr> |
| 49 | + <tr> |
| 50 | + <td>8</td> |
| 51 | + <td>9</td> |
| 52 | + <td>5</td> |
| 53 | + <td>2</td> |
| 54 | + <td>7</td> |
| 55 | + </tr> |
| 56 | + </tbody> |
| 57 | +</table> |
| 58 | + |
| 59 | +<p>이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물에 잠겼다고 하자. 이 경우에 물에 잠기는 지점을 회색으로 표시하면 다음과 같다. </p> |
| 60 | + |
| 61 | +<table class="table table-bordered table-center-20 td-center"> |
| 62 | + <tbody> |
| 63 | + <tr> |
| 64 | + <td>6</td> |
| 65 | + <td>8</td> |
| 66 | + <td class="bg-2468">2</td> |
| 67 | + <td>6</td> |
| 68 | + <td class="bg-2468">2</td> |
| 69 | + </tr> |
| 70 | + <tr> |
| 71 | + <td class="bg-2468">3</td> |
| 72 | + <td class="bg-2468">2</td> |
| 73 | + <td class="bg-2468">3</td> |
| 74 | + <td class="bg-2468">4</td> |
| 75 | + <td>6</td> |
| 76 | + </tr> |
| 77 | + <tr> |
| 78 | + <td>6</td> |
| 79 | + <td>7</td> |
| 80 | + <td class="bg-2468">3</td> |
| 81 | + <td class="bg-2468">3</td> |
| 82 | + <td class="bg-2468">2</td> |
| 83 | + </tr> |
| 84 | + <tr> |
| 85 | + <td>7</td> |
| 86 | + <td class="bg-2468">2</td> |
| 87 | + <td>5</td> |
| 88 | + <td class="bg-2468">3</td> |
| 89 | + <td>6</td> |
| 90 | + </tr> |
| 91 | + <tr> |
| 92 | + <td>8</td> |
| 93 | + <td>9</td> |
| 94 | + <td>5</td> |
| 95 | + <td class="bg-2468">2</td> |
| 96 | + <td>7</td> |
| 97 | + </tr> |
| 98 | + </tbody> |
| 99 | +</table> |
| 100 | + |
| 101 | +<p>물에 잠기지 않는 안전한 영역이라 함은 물에 잠기지 않는 지점들이 위, 아래, 오른쪽 혹은 왼쪽으로 인접해 있으며 그 크기가 최대인 영역을 말한다. 위의 경우에서 물에 잠기지 않는 안전한 영역은 5개가 된다(꼭짓점으로만 붙어 있는 두 지점은 인접하지 않는다고 취급한다). </p> |
| 102 | + |
| 103 | +<p>또한 위와 같은 지역에서 높이가 6이하인 지점을 모두 잠기게 만드는 많은 비가 내리면 물에 잠기지 않는 안전한 영역은 아래 그림에서와 같이 네 개가 됨을 확인할 수 있다. </p> |
| 104 | + |
| 105 | +<table class="table table-bordered table-center-20 td-center"> |
| 106 | + <tbody> |
| 107 | + <tr> |
| 108 | + <td class="bg-2468">6</td> |
| 109 | + <td>8</td> |
| 110 | + <td class="bg-2468">2</td> |
| 111 | + <td class="bg-2468">6</td> |
| 112 | + <td class="bg-2468">2</td> |
| 113 | + </tr> |
| 114 | + <tr> |
| 115 | + <td class="bg-2468">3</td> |
| 116 | + <td class="bg-2468">2</td> |
| 117 | + <td class="bg-2468">3</td> |
| 118 | + <td class="bg-2468">4</td> |
| 119 | + <td class="bg-2468">6</td> |
| 120 | + </tr> |
| 121 | + <tr> |
| 122 | + <td class="bg-2468">6</td> |
| 123 | + <td>7</td> |
| 124 | + <td class="bg-2468">3</td> |
| 125 | + <td class="bg-2468">3</td> |
| 126 | + <td class="bg-2468">2</td> |
| 127 | + </tr> |
| 128 | + <tr> |
| 129 | + <td>7</td> |
| 130 | + <td class="bg-2468">2</td> |
| 131 | + <td class="bg-2468">5</td> |
| 132 | + <td class="bg-2468">3</td> |
| 133 | + <td class="bg-2468">6</td> |
| 134 | + </tr> |
| 135 | + <tr> |
| 136 | + <td>8</td> |
| 137 | + <td>9</td> |
| 138 | + <td class="bg-2468">5</td> |
| 139 | + <td class="bg-2468">2</td> |
| 140 | + <td>7</td> |
| 141 | + </tr> |
| 142 | + </tbody> |
| 143 | +</table> |
| 144 | + |
| 145 | +<p>이와 같이 장마철에 내리는 비의 양에 따라서 물에 잠기지 않는 안전한 영역의 개수는 다르게 된다. 위의 예와 같은 지역에서 내리는 비의 양에 따른 모든 경우를 다 조사해 보면 물에 잠기지 않는 안전한 영역의 개수 중에서 최대인 경우는 5임을 알 수 있다. </p> |
| 146 | + |
| 147 | +<p>어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 계산하는 프로그램을 작성하시오. </p> |
| 148 | + |
| 149 | +### 입력 |
| 150 | + |
| 151 | + <p>첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N이 입력된다. N은 2 이상 100 이하의 정수이다. 둘째 줄부터 N개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보가 입력된다. 각 줄에는 각 행의 첫 번째 열부터 N번째 열까지 N개의 높이 정보를 나타내는 자연수가 빈 칸을 사이에 두고 입력된다. 높이는 1이상 100 이하의 정수이다.</p> |
| 152 | + |
| 153 | +### 출력 |
| 154 | + |
| 155 | + <p>첫째 줄에 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다.</p> |
| 156 | + |
0 commit comments