[문제]
https://www.acmicpc.net/problem/2252
[풀이]
학생들의 키에 대한 관계가 주어지고 선후 관계가 없을 경우 출력 순서는 상관이 없다. 간단한 위상정렬 문제이다.
[코드]
#include <iostream>
#include <vector>
#include <queue>
using namespace::std;
int main() {
int n, m; //n명의 학생, m은 키를 비교한 회수
int in[100001];
vector<int> node[32001];
cin >> n >> m;
int a, b;
for(int i=0; i<m; i++){
cin >> a >> b;
in[b]++; //진입 차수
node[a].push_back(b); //인접 관계
}
queue<int> q;
for(int i=1; i<=n; i++){
if(in[i]==0)
q.push(i);
}
while(!q.empty()){
int v = q.front();
q.pop();
cout << v << " ";
for(int i=0; i<node[v].size(); i++){
in[node[v][i]]--;
if(in[node[v][i]]==0)
q.push(node[v][i]);
}
}
}
'알고리즘 공부 및 문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[boj] 백준 2098 외판원 순회 (c++) - TSP(비트마스킹, dp, dfs) (0) | 2022.05.18 |
---|---|
[boj] 백준 16236 아기 상어 - BFS (0) | 2022.04.01 |
[boj] 백준 2493 탑 - stack (0) | 2022.03.25 |
[boj] 백준 2565 전깃줄 - dp, 증가하는 수열 (0) | 2022.03.18 |
[boj] 백준 16234 인구 이동 - BFS (0) | 2022.03.17 |