-
1012번 유기농 배추 | DFS | Baekjoon BOJ 백준 1012 C++ 코드, 해설, 풀이[백준 알고리즘]/[C++] 2021. 1. 29. 15:12728x90반응형
이번 포스팅은 백준 1012번 유기농 배추입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
기본 알고리즘
DFS 깊이 우선 탐색
전체 코드
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970//백준1012 유기농배추#include <iostream>using namespace std;const int MAX = 51;int T, M, N, K;int map[MAX][MAX];int visited[MAX][MAX];int dy[] = {0,0,-1,1};int dx[] = {-1,1,0,0};void reset() {for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {map[i][j] = 0;}}for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {visited[i][j] = 0;}}}void DFS(int y, int x) {visited[y][x] = 1;for (int i = 0; i < 4; i++) {int nx = x + dx[i];int ny = y + dy[i];if (nx < 0 || nx >= M || ny < 0 || ny >= N)continue;if (map[ny][nx] == 1 && visited[ny][nx] == 0) {DFS(ny, nx);}}}int main() {cin >> T;while (T--) {cin >> M >> N >> K;reset();while (K--) {int x, y;cin >> x >> y;map[y][x] = 1;}int cnt = 0;for (int i = 0; i < N; i++) {for (int j = 0; j < M; j++) {if (map[i][j] == 1 && visited[i][j] == 0) {DFS(i, j);cnt++;}}}cout << cnt << endl;}}cs 728x90반응형'[백준 알고리즘] > [C++]' 카테고리의 다른 글
11724번 연결 요소의 개수 | DFS, BFS | Baekjoon BOJ 백준 11724 C++ 코드, 해설, 풀이 (0) 2021.01.30 2667번 단지번호붙이기 | DFS | Baekjoon BOJ 백준 2667 C++ 코드, 해설, 풀이 (0) 2021.01.30 1110번 더하기 사이클 | Baekjoon BOJ 백준 1110 C++ 코드, 해설, 풀이 (0) 2021.01.28 2606번 바이러스 | BFS 너비우선탐색 | Baekjoon 백준 2606 C++ 코드, 해설, 풀이 (1) 2021.01.27 2606번 바이러스 | DFS 깊이우선탐색 | Baekjoon BOJ 백준 2606 C++ 코드, 해설, 풀이 (0) 2021.01.27