b3665. 최종순위
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/3665   📌 자바(Java)로 푸는 최종 순위 문제 - 백준 3665 🏆🔁 🔎 문제 개요 백준 3665번 - 최종 순위는 위상 정렬(Topological Sort)을 응용하는 문제입니다. 작년 순위가 주어지고,올해 바뀐 순위 정보들이 입력되며,그 정보를 바탕으로 올해의 최종 순위를 결정하는 문제입니다. 단, 순위를 정확히 하나로 정할 수 없다면 ? 출력모순이 발생해서 순위를 정할 수 없다면 IMPOSSIBLE 출력 💡 예제 입력155 4 3 2 122 43 1 💡 예제 출력5 3 2 4 1  🛠 알고리즘 접근 방식 이 문제는 기본 위상 정렬에✔ 순위가 바뀐 간선을 뒤집는 작업(reverse edge)✔ 정점 진입 차수(indegre..
b2623. 음악프로그램
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2623   보조 PD들이 짜온 순서를 만족하는 경우의수가 있는지 확인하는 문제.이 문제를 읽자마자 떠오른 아이디어로 위상정렬이 떠올랐다.보조 PD들의 입력을 받고 이후 보조 PD들이 생각하는 순서에 맞추어 가수들의 가중치를부여하였다. singer ArrayList로 어떤 가수가 앞에 서야하는지 controll하였고singerCount 로 현재 어떤 가수가 앞에 빠짐으로써 지금 순위가 어떻게 잡히는지 카운트 해주었다. 문제 풀이 자체는 쉬웠지만 위상정렬을 자주 쓰지 않다보니 구현하는 부분에서 쓸데없는코드가 많아지는 기분이 들었다.  import java.io.BufferedReader;import java.io.IOException;import j..
b1766. 문제집
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1766   이 문제는 위상 정렬을 사용해 방향 그래프의 노드를 순서대로 출력하는 문제다.주어진 조건에 따라 노드를 정렬하고, 모든 진입 차수가 0인 노드부터 순차적으로 탐색해 결과를 출력하는 방식이다.먼저 입력받은 노드 수와 간선 수를 통해 각 노드의 진입 차수를 기록하는 배열 degrees와노드 간 연결 관계를 저장하는 lists 배열을 초기화한다. 이후 각 간선 정보를 입력받아 진입 차수를 증가시키고,lists에 연결 정보를 저장한다. 이때 degrees[b]를 증가시켜 b로 들어오는 간선의 개수를 기록하고,a에서 b로의 연결을 lists[a]에 추가한다.초기화가 완료되면 진입 차수가 0인 노드를 모두 우선순위 큐 pq에 추가한다.이 큐는 노..