-
1260번 DFS와 BFS | Baekjoon BOJ 백준 1260 C++ 코드, 해설, 풀이[백준 알고리즘]/[C++] 2021. 1. 27. 14:40728x90반응형
이번 포스팅은 백준 1260번 DFS와 BFS입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
기본 알고리즘
DFS 깊이 우선 탐색
BFS 너비 우선 탐색
전체 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768//백준1260 DFS와BFS#include <iostream>#include <queue>using namespace std;#define MAX 1001int N, M, V; //정점개수, 간선개수, 시작정점int map[MAX][MAX]; //인접 행렬 그래프bool visited[MAX]; //정점 방문 여부queue<int> q;void reset() {for (int i = 1; i <= N; i++) {visited[i] = 0;}}void DFS(int v) {visited[v] = true;cout << v << " ";for (int i = 1; i <= N; i++) {if (map[v][i] == 1 && visited[i] == 0) { //현재 정점과 연결되어있고 방문되지 않았으면DFS(i);}}}void BFS(int v) {q.push(v);visited[v] = true;cout << v << " ";while (!q.empty()) {v = q.front();q.pop();for (int w = 1; w <= N; w++) {if (map[v][w] == 1 && visited[w] == 0) { //현재 정점과 연결되어있고 방문되지 않았으면q.push(w);visited[w] = true;cout << w << " ";}}}}int main() {cin >> N >> M >> V;for (int i = 0; i < M; i++) {int a, b;cin >> a >> b;map[a][b] = 1;map[b][a] = 1;}reset();DFS(V);cout << '\n';reset();BFS(V);return 0;}cs 728x90반응형'[백준 알고리즘] > [C++]' 카테고리의 다른 글
2606번 바이러스 | BFS 너비우선탐색 | Baekjoon 백준 2606 C++ 코드, 해설, 풀이 (1) 2021.01.27 2606번 바이러스 | DFS 깊이우선탐색 | Baekjoon BOJ 백준 2606 C++ 코드, 해설, 풀이 (0) 2021.01.27 15815번 천재 수학자 성필 | Baekjoon BOJ 백준 15815 C++ 코드, 해설, 풀이 (0) 2021.01.26 5545번 최고의 피자 | Baekjoon BOJ 백준 5545 C++ 코드, 해설, 풀이 (1) 2021.01.26 4949번 균형잡힌 세상 | Baekjoon BOJ 백준 4949 C++ 코드, 해설, 풀이 (1) 2021.01.26