[C++ / 백준 1260번] DFS와 BFS

2025. 2. 21. 13:58·프로그래밍 공부/백준 (C++)

문제

 

 

시행 착오

 

 

해결 방법

 

벡터를 이용해 그래프를 구현하고, DFS 는 재귀호출을 통해, BFS 는 큐를 이용해 구현했다.

정점 순서대로 순회 하려면 입력 받은 뒤 sort를 해주어야 한다.

 

 

 

#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

int N, M, V;
vector<int> g[1001];
bool visited[10001] = { false };

queue<int> q;
vector<int> v_bfs;
vector<int> v_dfs;

void dfs(int node) 
{
    visited[node] = true;
    v_dfs.push_back(node);

    for (int nextnode : g[node]) 
    {
        if (!visited[nextnode]) 
        {
            dfs(nextnode);
        }
    }

}

void bfs(int node) 
{
    q.push(node);
    visited[node] = true;

    while (!q.empty())
    {
        int nextnode = q.front();
        q.pop();
        v_bfs.push_back(nextnode);
        
        for (int next : g[nextnode])
        {
            if (!visited[next])
            {
                visited[next] = true;
                q.push(next);
            }
        }


    }
}

int main() {
    cin >> N >> M >> V;

    for (int i = 0; i < M; i++) {
        int u, v;
        cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }

    for (int i = 1; i <= N; i++)
        sort(g[i].begin(), g[i].end());

    dfs(V);

    for (int i : v_dfs)
        cout << i << " ";
    cout << '\n';

    fill(visited, visited + 10001, false);

    bfs(V);

    for (int i : v_bfs)
        cout << i << " ";

    return 0;
}

 

 

'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글

[C++ / 백준 1707번] 이분 그래프  (0) 2025.02.26
[C++ / 백준 11724번] 연결 요소의 개수  (0) 2025.02.22
[C++ / 백준 13023번] ABCDE  (0) 2025.02.20
[C++ / 백준 14391번] 종이 조각  (0) 2025.02.20
[C++ / 백준 1182번] 부분 수열의 합  (0) 2025.02.19
'프로그래밍 공부/백준 (C++)' 카테고리의 다른 글
  • [C++ / 백준 1707번] 이분 그래프
  • [C++ / 백준 11724번] 연결 요소의 개수
  • [C++ / 백준 13023번] ABCDE
  • [C++ / 백준 14391번] 종이 조각
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (184)
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (63)
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (11)
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      오블완
      실전 C프로그래밍
      언리얼엔진 eqs generator
      c++ 17298
      티스토리챌린지
      언리얼엔진 eqs 커스텀
      언리얼엔진5 fps 프로젝트
      실전 C 프로그래밍
      C언어 실습문제
      실전C프로그래밍 실습문제
      실전C프로그래밍 나중채
      c언어
      실전 C프로그래밍 나중채
      실전C프로그래밍
      언리얼엔진 eqs c++
      핸즈온 머신러닝 2판
      실전 C프로그래밍 실습문제
      언리얼엔진5
      핸즈온 머신러닝
      언리얼엔진
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [C++ / 백준 1260번] DFS와 BFS
    상단으로

    티스토리툴바