-
백준 2252 줄 세우기 | 위상정렬 | C++[백준 알고리즘]/[C++] 2021. 4. 12. 10:34728x90반응형
이번 포스팅은 백준 2252번 줄 세우기입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
기본 알고리즘
위상정렬 Topological Sort
전체 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950//백준2252 줄세우기#include <iostream>#include <vector>#include <queue>using namespace std;const int MAX = 32002;int N, M;vector<int> adj[MAX];int inDeg[MAX];queue<int> q;vector<int> result;void topoSort() {for (int i = 1; i <= N; i++) {if (inDeg[i] == 0) {q.push(i);}}while (!q.empty()) {int cur = q.front();result.push_back(cur);q.pop();for (int i = 0; i < adj[cur].size(); i++) {int next = adj[cur][i];inDeg[next]--;if (inDeg[next] == 0) {q.push(next);}}}}int main() {cin >> N >> M;for (int i = 0; i < M; i++) {int a, b;cin >> a >> b;adj[a].push_back(b);inDeg[b]++;}topoSort();for (int i = 0; i < result.size(); i++) {cout << result[i] << " ";}return 0;}cs 728x90반응형'[백준 알고리즘] > [C++]' 카테고리의 다른 글
백준 11000 강의실 배정 | 우선순위큐 | C++ (0) 2021.05.11 백준 11403 경로 찾기 | 플로이드-워셜 | C++ (0) 2021.04.12 백준 1613 역사 | 플로이드-워셜 | C++ (0) 2021.04.09 백준 10159 저울 | 플로이드-워셜 | C++ (0) 2021.04.08 백준 2458 키 순서 | 플로이드-워셜 | C++ (0) 2021.04.08