본문 바로가기

Algorithm/BAEKJOON

[BOJ] 2623번 음악프로그램 (C++)

728x90
반응형

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

 

2623번: 음악프로그램

첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한

www.acmicpc.net

 

#include <iostream>
#include <vector>
#include <queue>
#define MAX 1001
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	int n, m, a, b, indegree[MAX], result[MAX];
	vector<int> v[MAX];
	queue<int> q;
	
	cin >> n >> m;
	
	for(int i = 0; i < m; i++){
		int sNum, s1, s2;
		cin >> sNum;
		cin >> s1;
		for(int i = 0; i < sNum - 1; i++){
			cin >> s2;
			v[s1].push_back(s2);
			indegree[s2]++;
			s1 = s2;
		}
	}
	
	for(int i = 1; i <= n; i++){
		if(indegree[i] == 0) q.push(i);
	}
	
	for(int i = 1; i <= n; i++){
		if(q.empty()) {
			cout << 0 << endl;
			return 0;
		}
		int x = q.front();
		q.pop();
		result[i] = x;
		
		for(int j = 0; j < v[x].size(); j++){
			int y = v[x][j];
			if(--indegree[y] == 0) q.push(y);
		}
	}
	
	for(int i = 1; i <= n; i++){
		cout << result[i] << endl;
	}
	
	return 0;
}
728x90
반응형

'Algorithm > BAEKJOON' 카테고리의 다른 글

[BOJ] 9012번 괄호 (C++)  (0) 2021.12.25
[BOJ] 11866번 요세푸스 문제 0 (C++)  (0) 2021.12.25
[BOJ] 11724번 연결 요소의 개수 (C++)  (0) 2021.12.24
[BOJ] 1766번 문제집 (C++)  (0) 2021.12.24
[BOJ] 2252번 줄 세우기 (C++)  (0) 2021.12.23