코딩/백준 문제 풀이

BOJ 1260 - DFS와 BFS

stonejjun 2019. 11. 19. 13:26

문제 태그 : https://www.acmicpc.net/problem/1260

문제 설명

사실 풀이라고 할 것은 딱히 없다. 문제의 제목 부터 내용까지 DFS와 BFS를 한 번 해보시오 라는 뜻의 연습문제이다. DFS와 BFS에 대한 개념을 알아야지 풀 수 있으며, 알 면 풀 수 있다. DFS와 BFS에 대한 설명은 여기에 나와있다.

코드

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<bits/stdc++.h>
using namespace std;
 
int vid[10101];
int vib[10101];
 
vector<int> edg[1010];
 
void bfs(int x){
    vib[x]=1;
    queue<int> q;
    q.push(x);
    while(!q.empty()){
        x=q.front(); q.pop();
        printf("%d ",x);
        for(auto n:edg[x])
            if(vib[n]==0){
                vib[n]=1;
                q.push(n);
            }
    }
}
 
void dfs(int x){
    printf("%d ",x);
    vid[x]=1;
    for(auto n:edg[x])
        if(vid[n]==0){
            vid[n]=1;
            dfs(n);
        }
}
 
 
int main(){
    int i,j,k,l,m,n,a,b;
    scanf("%d %d %d",&n,&m,&k);
    for(i=1;i<=m;i++){
        scanf("%d %d",&a,&b);
        edg[a].push_back(b);
        edg[b].push_back(a);
    }
    for(i=1;i<=n;i++)
        sort(edg[i].begin(), edg[i].end());
    dfs(k);
    printf("\n");
    bfs(k);
}
cs

'코딩 > 백준 문제 풀이' 카테고리의 다른 글

BOJ 1006 - 습격자 초라기  (0) 2020.02.09
BOJ 1520 - 내리막 길  (0) 2020.01.24
BOJ 4243 - 보안 업체  (0) 2019.12.03
BOJ 1848 - 동굴 탐험  (0) 2019.11.25
BOJ 1753 - 최단경로  (0) 2019.11.24