티스토리 뷰

문제 링크입니다

https://www.acmicpc.net/problem/1260

 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다.

www.acmicpc.net

 

DFS, BFS에 대한 설명은 아래 링크를 참고해주세요.

https://dvpzeekke.tistory.com/37?category=887119

 

[c++] DFS(Depth First Search) 알고리즘

BFS 알고리즘은 깊이를 우선으로 탐색하는 알고리즘 입니다. 즉, 현재 정점에 갈 수 있는 노드까지 들어가며 탐색합니다. 주로 stack 혹은 재귀함수를 이용해서 구현합니다. c++로 dfs를 구현해보겠습니다. 위..

dvpzeekke.tistory.com

https://dvpzeekke.tistory.com/36?category=887119

 

[c++] BFS(Breadth First Search) 알고리즘

BFS 알고리즘은 너비를 우선으로 탐색하는 알고리즘 입니다. 즉, 현재 정점에 연결된 가까운 노드부터 탐구합니다. 주로 queue를 이용해서 구현합니다. c++로 bfs를 구현해보겠습니다. 위 그래프에서 1 노드와..

dvpzeekke.tistory.com

 

 

//
//  main.cpp
//  1260
//
//  Created by Jihye on 2020/01/14.
//  Copyright © 2020 Jihye Han. All rights reserved.
//

#include <iostream>
#include <queue>
#include <cstring>

using namespace std;

const int MAX = 1000 + 1;

int N, M, V;
int map[MAX][MAX];
bool visited[MAX];
queue<int> q;

void DFS(int index) {
    visited[index] = true;
    cout << index << " ";
    
    for (int i = 1; i <= N; i++) {
        if ((!visited[i]) && (map[i][index] == 1)) {
            DFS(i);
        }
    }
}

void BFS(int index) {
    q.push(index);
    visited[index] = true;
    
    while (!q.empty()) {
        index = q.front();
        q.pop();
        cout << index << " ";
        
        for (int i = 1; i <= N; i++) {
            if ((!visited[i]) && (map[index][i] == 1)) {
                visited[i] = true;
                q.push(i);
            }
        }
    }
    
}

int main(void) {
    
    cin >> N >> M >> V;
    
    for (int i = 0; i < M; i++) {
        int from, to;
        
        cin >> from >> to;
        map[from][to] = 1;
        map[to][from] = 1;
    }
    
    DFS(V);
    cout << endl;
    
    memset(visited, false, sizeof(visited));
    BFS(V);
    cout << endl;
    
    return 0;
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함