๐ฆ2252: ์ค ์ธ์ฐ๊ธฐ
[์๊ณ ๋ฆฌ์ฆ ํ์ด] ๊ฐ๋๊ท
Reviewed by Kade Kang (devkade12@gmail.com)
Reviewed:: 2024-02-18
๋ฌธ์ ํ์ธํ๊ธฐ
ํ์ด
- ์์์ ๋ ฌ ๋ฌธ์ ์ด๋ค.
- Workbook-1766 ๋ฌธ์ ์ ๋์ผํ์ง๋ง ์กฐ๊ฑด์ด ์ ์ด ๋ ์ฌ์ด ๋ฌธ์ ์ด๋ค.
- ์์๋ฅผ ์ง์ผ ์ค์ ์ธ์ฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋จผ์ ์ค์ ์์ผ ํ๋ ์น๊ตฌ๋ณด๋ค ๋์ค์ ์์ผ ํ๋ ์น๊ตฌ๋ +1์ ํตํด์ ์์๋ฅผ ๋ค๋ก ๋ฏธ๋ฃฌ๋ค.
#include <iostream>
#include <queue>
#define endl '\n'
using namespace std;
int N, M, A, B;
int degree[32002];
vector<int> after[32002];
queue<int> q;
void Input(){
cin >> N >> M;
for(int i=0; i<M; i++){
cin >> A >> B;
after[A].push_back(B);
degree[B]++;
}
}
void Solution(){
for(int i=1; i<=N; i++){
if(degree[i] == 0) q.push(i);
}
for(int i=1; i<=N; i++){
int cur = q.front(); q.pop();
cout << cur << ' ';
for(auto nxt : after[cur]){
degree[nxt]--;
if(degree[nxt] == 0) q.push(nxt);
}
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
Input();
Solution();
return 0;
}