# topological

3개의 포스트
post-thumbnail

[ 백준 ] 2623 음악프로그램

Link | [백준 2623번 문제 : 음악프로그램] (https://www.acmicpc.net/problem/2623) 📌 About 특정 가수의 순서가 오려면 이전 가수들의 순서가 선행되어야 한다. Graph 입장에서 보면 node의 탐색에 선행 node 탐색이 필요하다. 그렇기 때문에 위상정렬을 통해 해결할 수 있다. 위상 정렬 📌 Solution Step 1. 진입차수와 진출 node를 저장하는 자료구조를 초기화한다. preSingerNum[n]은 n번 가수보다 선행되어야 할 가술들의 수이다. nextSingers.get(n)은 n번 가수 이후에 오는 가술들이다. 이 때 Set가 아닌 List으로 하면 중복이 될 수 있기 때문에 Set으로 선언한다. **Step 2.

2023년 3월 17일
·
0개의 댓글
·
post-thumbnail

백준 - 2623번 음악프로그램

https://www.acmicpc.net/problem/2623 접근법 기본적인 위상정렬문제로 쉽게 해결! 위상정렬의 핵심은 inDegree 배열. 각 인덱스별로 앞서 필요한 항목의 수 만큼 count를 가지고 있고, 조치가 취해지면 count를 깍아나가는 식으로 접근하면 됨 graph는 선행 -> 후행의 관계를 잡기위해 마련한 변수. 입력에 따라 선행, 후행 관계를 graph 배열의 인덱스에 맞게 생성. 생성하면서 후행이 되는 인덱스는 inDegree 배열 값도 올려줌 초기에는 inDegree배열이 0인 값 = 선행조건이 없는 값을 Queue에 넣어주고 반복문 소스

2021년 11월 25일
·
0개의 댓글
·
post-thumbnail

백준 - 1766번 문제집

https://www.acmicpc.net/problem/1766 접근법 기본적인 위상정렬문제로 해결 graph라는 List배열을 할당해주고, 각각 인덱스에 후속작업의 인덱스를 넣어줌. graph[pre].add(post) 넣어주면서, 전 작업이 필요한 경우 count를 올려줌. inDegree[post]++ >4번은 1번 앞에 있어야함 => graph(1).add(4), 5번은 1번 앞에있어야함 => graph(1).add(5) inDegree의 값이 0인 인덱스에 대해 우선순위 큐에 삽입 (문제에서 숫자가 빠른순으로 처리하라는 내용이 있으므로 우선순위 큐를 사용함) 우선순위 큐에 맞게 꺼낸 항목에 대해, 후속작업 List를 탐색하고 각각에 대해 inDe

2021년 11월 4일
·
0개의 댓글
·