[๋ฐฑ์ค€/C++] 2252๋ฒˆ ์ค„ ์„ธ์šฐ๊ธฐ

2022. 7. 16. 19:56ยท๋ฐฑ์ค€/C++

๋ฐฑ์ค€


๐Ÿค”๋ฌธ์ œ ์ดํ•ด

๋น„๊ต๋œ ํ•™์ƒ๋“ค์€ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์ค„์„ ๋น„๊ต๋˜์ง€ ์•Š์€ ํ•™์ƒ๋“ค์€ ๊ทธ๋ƒฅ ๋žœ๋ค์œผ๋กœ ์ค„์„ ์„ธ์šฐ๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.


๐Ÿ’ก์ฒซ๋ฒˆ์งธ ์•„์ด๋””์–ด

๋น„๊ต๋˜์ง€ ์•Š์€ ํ•™์ƒ๋“ค์„ ๋จผ์ € ๋งจ ์•ž์— ์„ธ์›Œ์ฃผ๊ณ  ๋น„๊ต๋œ ํ•™์ƒ๋“ค์€ "์ˆœ์„œ"๊ฐ€ ์ •ํ•ด์ง€๋ฏ€๋กœ ๊ทธ ํ•™์ƒ๋“ค์„ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ค„์„ ์„ธ์šฐ๋Š” ๋ฐฉ์‹์„ ๋– ์˜ฌ๋ ธ๋‹ค. ๊ทธ๋ƒฅ ์œ„์ƒ์ •๋ ฌ ๋ฌธ์ œ.

 

๐Ÿ”ฅํ’€์ด๐Ÿ”ฅ

in_degree์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ ๋จผ์ € queue์— ๋„ฃ์–ด์ค€๋‹ค.

queue๊ฐ€ ๋นŒ๋•Œ๊นŒ์ง€ popํ•œ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ ํ•™์ƒ ๋‹ค์Œ์œผ๋กœ ์ค„์„ ์„ค ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ in_degree๋ฅผ -1ํ•ด์คฌ์„ ๋•Œ in_degree๊ฐ’์ด 0์ด๋ผ๋ฉด queue์— pushํ•ด์ค€๋‹ค.

๋น„๊ต๋œ ํ•™์ƒ์ด ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ visited๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ ์ค„์„ ์„ธ์šด ํ•™์ƒ์€ ๋ฌด์‹œํ•ด์ค€๋‹ค.


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

using namespace std;

int n, m;
vector<vector<int>> v;
int in_degree[32002];
bool visited[32002];
int main() {
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(false);

    cin >> n >> m;
    v.resize(n + 2);

    int a, b;
    for (int i = 0; i < m; i++) {
        cin >> a >> b;
        v[a].push_back(b);
        in_degree[b]++;
    }

    queue<int> q;
    for (int i = 1; i <= n; i++) {
        if (in_degree[i] == 0) {
            q.push(i);
            visited[i] = true;
        }
    }

    while (!q.empty()) {
        int now = q.front();
        q.pop();
        cout << now << " ";

        for( int x : v[now]) {
            in_degree[x]--;
            if( in_degree[x] == 0 && !visited[x]) {
                visited[x] = true;
                q.push(x);
            }
        }
    }
}

 

๐Ÿ”—์ฐธ๊ณ ํ•  ๋ฌธ์ œ

https://yulee.tistory.com/23

 

728x90

'๋ฐฑ์ค€ > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€/C++] 18352 ํŠน์ •๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 2234๋ฒˆ ์„ฑ๊ณฝ  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 2056๋ฒˆ ์ž‘์—…  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 1162๋ฒˆ ๋„๋กœํฌ์žฅ  (0) 2022.07.16
[๋ฐฑ์ค€/C++] 1005๋ฒˆ ACM Craft  (0) 2022.07.16
'๋ฐฑ์ค€/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€/C++] 18352 ํŠน์ •๊ฑฐ๋ฆฌ์˜ ๋„์‹œ ์ฐพ๊ธฐ
  • [๋ฐฑ์ค€/C++] 2234๋ฒˆ ์„ฑ๊ณฝ
  • [๋ฐฑ์ค€/C++] 2056๋ฒˆ ์ž‘์—…
  • [๋ฐฑ์ค€/C++] 1162๋ฒˆ ๋„๋กœํฌ์žฅ
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (107)
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • ๊ณต๋ถ€ (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
        • ๊ธฐํƒ€ (0)
      • ๋ฐฑ์ค€ (39)
        • C++ (39)
        • Java (0)
      • ๋„์„œ (39)
        • ์ž๋ฐ”์˜ ์‹  (32)
        • ์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์›๋ฆฌ์™€ ์ดํ•ด (7)
      • ๊ธฐํƒ€ (4)
        • Blog (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์ž๋ฐ”์˜ ์‹ 
    Spring
    aws
    1์ผ1๋ฐฑ์ค€
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์Šคํ”„๋ง ์ž…๋ฌธ
    GodOfJava
    ์Šคํ„ฐ๋””
    ๋ฐฑ์ค€
    ๊ฐ์ฒด์ง€ํ–ฅ
    boj
    EC2
    C++
    ๋ฌธ์ œํ’€์ด
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ์ž๋ฐ”
    DP
    Java
    ์œ„์ƒ์ •๋ ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
yulee_to
[๋ฐฑ์ค€/C++] 2252๋ฒˆ ์ค„ ์„ธ์šฐ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

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