[BOJ][C++] ๋ฐฑ์ค€ 2606๋ฒˆ: ๋ฐ”์ด๋Ÿฌ์Šค

2025. 5. 13. 00:29ยท๐Ÿ’ญ Problem Solving/C++

๋ฌธ์ œ

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

 

๋ฌธ์ œ ์ดํ•ด

  • ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ”์ด๋Ÿฌ์Šค์— ๊ฑธ๋ฆฌ๋ฉด, ๊ทธ ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ๋Š” ๋ชจ๋‘ ๋ฐ”์ด๋Ÿฌ์Šค์— ๊ฑธ๋ฆฐ๋‹ค.
  • 1๋ฒˆ ์ปดํ“จํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฐ”์ด๋Ÿฌ์Šค์— ๊ฑธ๋ฆฌ๊ฒŒ ๋˜๋Š” ์ปดํ“จํ„ฐ์˜ ์ˆ˜ ์ถœ๋ ฅ

 

๋ฌธ์ œ ํ’€์ด

๐Ÿ” ์ ‘๊ทผ

  • ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ๋“ค์„ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • 1๋ฒˆ ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ปดํ“จํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

 

๐Ÿ’ก DFS & BFS

  • ์ธ์ ‘ ํ–‰๋ ฌ์— ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • 1๋ฒˆ ์ปดํ“จํ„ฐ๋ถ€ํ„ฐ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•ด์„œ, 1๋ฒˆ ์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ปดํ“จํ„ฐ์— ๋ฐฉ๋ฌธํ•œ๋‹ค.
  • ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ๋ฐฉ๋ฌธ ํ‘œ์‹œ๋ฅผ ํ•˜๊ณ  ์นด์šดํŠธ(๋ฐ”์ด๋Ÿฌ์Šค์— ๊ฑธ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ์˜ ์ˆ˜)๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 

์ฝ”๋“œ

1๏ธโƒฃ DFS

#include <iostream>
#include <vector>

using namespace std;

int n, m, cnt;
vector<vector<bool> > adj;
vector<bool> visited;

void dfs(int com) {
    visited[com] = true;
    cnt++;

    for (int next = 1; next < n + 1; next++) {
        if (adj[com][next] && !visited[next])
            dfs(next);
    }
}

int main() {
    // ์ž…๋ ฅ
    cnt = 0;
    cin >> n >> m;
    adj.assign(n + 1, vector<bool>(n + 1, false));
    visited.assign(n + 1, false);
    for (int i = 0; i < m; i++) {
        int r, c;
        cin >> r >> c;
        adj[r][c] = true;
        adj[c][r] = true;
    }

    // ์—ฐ์‚ฐ
    dfs(1);

    // ์ถœ๋ ฅ
    cout << cnt - 1;
    
    return 0;
}

 

 

2๏ธโƒฃ BFS

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

using namespace std;

int n, m;
vector<vector<bool> > adj;
vector<bool> visited;

int bfs(int com) {
    int cnt = 0;
    queue<int> q;

    q.push(com);
    visited[com] = true;

    while (!q.empty()) {
        com = q.front();
        cnt++;
        q.pop();
        for (int next = 1; next < n + 1; next++) {
            if (!adj[com][next] || visited[next])
                continue;
            visited[next] = true;
            q.push(next);
        }
    }
    return cnt - 1;
}

int main() {
    // ์ž…๋ ฅ
    cin >> n >> m;
    adj.assign(n + 1, vector<bool>(n + 1, false));
    visited.assign(n + 1, false);
    for (int i = 0; i < m; i++) {
        int r, c;
        cin >> r >> c;
        adj[r][c] = true;
        adj[c][r] = true;
    }

    // ์—ฐ์‚ฐ & ์ถœ๋ ฅ
    cout << bfs(1);
    
    return 0;
}

'๐Ÿ’ญ Problem Solving > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ][C++] ๋ฐฑ์ค€ 12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ  (0) 2025.05.19
[BOJ][C++] ๋ฐฑ์ค€ 11559๋ฒˆ: Puyo Puyo  (0) 2025.05.18
[BOJ][C++] ๋ฐฑ์ค€ 1303๋ฒˆ: ์ „์Ÿ - ์ „ํˆฌ  (0) 2025.04.23
[BOJ][C++] ๋ฐฑ์ค€ 1890๋ฒˆ: ์ ํ”„  (0) 2025.04.23
[BOJ][C++] ๋ฐฑ์ค€ 2579๋ฒˆ: ๊ณ„๋‹จ์˜ค๋ฅด๊ธฐ  (0) 2025.04.23
'๐Ÿ’ญ Problem Solving/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ][C++] ๋ฐฑ์ค€ 12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ
  • [BOJ][C++] ๋ฐฑ์ค€ 11559๋ฒˆ: Puyo Puyo
  • [BOJ][C++] ๋ฐฑ์ค€ 1303๋ฒˆ: ์ „์Ÿ - ์ „ํˆฌ
  • [BOJ][C++] ๋ฐฑ์ค€ 1890๋ฒˆ: ์ ํ”„
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (65)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (28)
        • C++ (28)
      • ๐Ÿ“ Study (1)
        • React (1)
      • ๐Ÿ’ป CS (2)
        • ๐Ÿ“˜ Dev Book (2)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    .h
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    42๊ฒฝ์‚ฐ
    JavaScript
    C
    ๊ตฌํ˜„
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    CS
    git
    BFS
    ๋งต
    knapsack
    github
    swea
    ์ •๋ ฌ
    VR
    dfs
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    unity
    dynamic programming
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ๋ฐฑ์ค€
    react
    CSS
    La Piscine
    HTML
    makefile
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[BOJ][C++] ๋ฐฑ์ค€ 2606๋ฒˆ: ๋ฐ”์ด๋Ÿฌ์Šค
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”