Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 풀이
- 원판 돌리기
- 백준 2447
- 백준 17471
- heap
- 백준
- 버킷 정렬
- 백준 1158
- 백준 17779
- c#
- 자료구조
- 스택의 특징
- qorwns
- C/C++ 구현
- 구현
- 조세퍼스 순열
- dfs
- Stack 이란
- 백준 5397
- AVL 시간 복잡도
- 1764
- 해시구현
- ㅣ풀이
- 백준 17822
- 시간 복잡도
- 별 찍기 10
- 백준 1406
- 게리멘더링2
- 5397
- 해시 구현
Archives
- Today
- Total
홍시홍의 프로그래밍
[백준 2468] 안전 영역 본문
https://www.acmicpc.net/problem/2468
2468번: 안전 영역
재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어
www.acmicpc.net
요구 사항
흩어져 있는 영역이 최대인 장마 높이 구하기
풀이
0에서 100까지 장마 높이를 정하여서 dfs로 흩어져 있는 영역을 구한다
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
int n, m;
int map[101][101];
int visit[101][101];
int maxv = 0;
int minv = 101;
int dr[4] = { -1,0,1,0 };
int dc[4] = { 0,-1,0,1 };
void dfs(int r, int c, int k) {
for (int i = 0; i < 4; i++) {
int nr = r + dr[i];
int nc = c + dc[i];
if (nr < 0 || nc < 0 || nr >= n || nc >= n) {
continue;
}
if (map[nr][nc] > k&& visit[nr][nc] == 0) {
visit[nr][nc] = 1;
dfs(nr, nc, k);
}
}
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &map[i][j]);
maxv = max(maxv, map[i][j]);
minv = min(minv, map[i][j]);
}
}
int ans = 0;
int cnt = 0;
for (int k = 0; k <= 100; k++) {
memset(visit, 0, sizeof(visit));
cnt = 0;
// cout << k << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
{
if (map[i][j] > k && visit[i][j] == 0) {
visit[i][j] = 1;
cnt++;
//cout << cnt << endl;
dfs(i, j, k);
}
}
}
//cout << "cnt" << cnt << endl;
ans = max(cnt, ans);
}
cout << ans << endl;
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 1238] 파티 (0) | 2020.01.14 |
---|---|
[백준 1987] 알파벳 (0) | 2020.01.13 |
[백준 2583] 영역 구하기 (0) | 2020.01.13 |
[백준 6603] 로또 (0) | 2020.01.13 |
[백준 11724] 연결 요소의 개수 (0) | 2020.01.13 |
Comments