-
1012번 유기농 배추 | DFS | Baekjoon BOJ 백준 1012 C++ 코드, 해설, 풀이[백준 알고리즘]/[C++] 2021. 1. 29. 15:12728x90반응형
이번 포스팅은 백준 1012번 유기농 배추입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
기본 알고리즘
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