[백준] 2252번 - 줄 세우기

LJ-hyeok·2022년 11월 20일

알고리즘

목록 보기
5/6

beakjoon

백준 2252번 줄 세우기

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


코드

#include<iostream>
#include<vector>
#include<queue>
using namespace std;

vector<int> v[100001];
int indegree[100001];
queue<int> q;

int main(){
	int N,M;
	cin >> N >> M;
	for(int i=0;i<M;i++){
		int a,b;
		cin >> a >> b;
		v[a].push_back(b);
		indegree[b]++;
	}
	
	for(int i=1;i<=N;i++)
		if(indegree[i]==0)
			q.push(i);
	
	while(!q.empty()){
		int cur = q.front();
		q.pop();
		cout << cur << " ";
		for(int i=0;i<v[cur].size();i++){
			if(--indegree[v[cur][i]]==0)
				q.push(v[cur][i]);
		}
	}
}

풀이

위상정렬

profile
위이이잉

0개의 댓글