이동식 저장소

2623. 음악프로그램 본문

Problem Solving/BOJ

2623. 음악프로그램

해스끼 2020. 2. 16. 19:23
 

2623번: 음악프로그램

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

www.acmicpc.net


여러 개의 부분 순서가 주어진다. 우리의 목표는 모든 부분 순서를 만족시키는 전체 순서를 작성하는 것이다.

 

순서를 정해야 한다는 말에서 알 수 있듯이, 위상 정렬을 적용하면 된다.

위상 정렬을 수행하기 위해서는 그래프를 만들어야 한다. 우리는 주어진 입력으로부터 그래프를 쉽게 만들 수 있다.

 

예를 들어 예제 입력의 첫 번째 줄을 보자.

1 4 3

이 입력은 1→4, 4→3으로 쪼갤 수 있다. 그래프에서 간선을 추가하듯이 해 주면 된다.

 

이때 주의할 점은, 같은 순서가 여러번 입력될 수 있다. 예를 들어 다음의 입력이 주어졌을 때, 1→2는 한 번만 세야 한다. 그렇지 않으면 위상 정렬할 때 진입차수를 잘못 계산하게 된다.

2 2
2 1 2
2 1 2

mazassumnida

왜 골드 2인지 잘 모르겠다. 잘 쳐줘야 골드 3 정도 아닌가..

아무튼 이렇게 또 한 문제 풀어본다.

'Problem Solving > BOJ' 카테고리의 다른 글

2692. 양팔저울  (0) 2020.02.28
16946. 벽 부수고 이동하기 4  (0) 2020.02.18
2263. 트리의 순회  (0) 2020.02.02
13549. 숨바꼭질 3  (0) 2020.02.02
11062. 카드 게임  (0) 2020.01.22
Comments