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
- 월곡동 학원추천
- 백준 K보다 큰 구간
- C++ 문자열
- 상월곡역 학원
- 백준 패션왕 신해빈
- 상월곡동 학원
- 백준 1049번
- 월곡중학교 학원추천
- 백준 14246번 K보다 큰 구간
- 백준 14246번
- 고정 소수점
- 서울사대부고 학원
- 백준 1049번 기타줄
- 백준 2309번 일곱 난쟁이
- 운영체제
- 백준 10709
- c++ split
- C# 병합정렬
- c++ 조합
- 백준 토마토
- OS
- 월곡역 학원
- 성북구 학원
- 백준 한국이 그리울 땐 서버에 접속하지
- C++ 9996
- 백준 9375번 패션왕 신해빈
- 관리형 학원
- 백준 dfs
- DFS
- 월곡중 학원
Archives
- Today
- Total
키베이루's diary
[C++] 백준 1012번 유기농 배추 본문
1) 문제설명
https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
2) 아이디어
DFS를 사용하여 1이 연속으로 되어있는 구간일 경우 카운트를 세 주었다.
3) 코드
#include<iostream>
#include<queue>
#include<deque>
#include<string.h>
#include<math.h>
#include<cmath>
#include<stack>
#include<algorithm>
using namespace std;
priority_queue <int,vector<int>,greater<int>> v; // 우선순위 큐를 오름차순으로 정렬
int arr[55][55];
int cnt = 0;
void dfs(int x, int y, int m, int n) {
if (x < 0 || y < 0 || x >= m || y >= n) { // 범위에서 벗어날 경우 return
return;
}
if (arr[x][y] == 1) { // 1인 단지일때
arr[x][y] = 0; // 0으로 초기화 후
cnt++; // 갯수를 세어준다
dfs(x - 1, y, m ,n);
dfs(x + 1, y, m ,n);
dfs(x, y - 1, m, n);
dfs(x, y + 1, m, n);
}
}
int main() {
int n, m, t ,k;
cin >> t;
for (int i = 0; i < t; i++) {
cin >> m >> n >> k;
int cnt = 0;
for (int j = 0; j < k; j++) {
int x, y;
cin >> x >> y;
arr[x][y] = 1;
}
for (int l = 0; l < m; l++) {
for (int j = 0; j < n; j++) {
if (arr[l][j] == 1) {
dfs(l, j, m, n);
cnt++;
}
}
}
cout << cnt << endl;
}
}
'알고리즘 > BFS, DFS' 카테고리의 다른 글
[C++] 백준 7562번 나이트의 이동 (0) | 2022.06.10 |
---|---|
[C++] 백준 2178번 미로 탐색 (0) | 2022.06.09 |
[C++] 백준 2667번 단지번호붙이기 (0) | 2022.06.08 |
[C++] 백준 24445번 알고리즘 수업 - 너비 우선 탐색 2 (0) | 2022.06.07 |
[C++] 백준 24444번 알고리즘 수업 - 너비 우선 탐색 1 (0) | 2022.06.07 |
Comments