b1766. 문제집
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1766   이 문제는 위상 정렬을 사용해 방향 그래프의 노드를 순서대로 출력하는 문제다.주어진 조건에 따라 노드를 정렬하고, 모든 진입 차수가 0인 노드부터 순차적으로 탐색해 결과를 출력하는 방식이다.먼저 입력받은 노드 수와 간선 수를 통해 각 노드의 진입 차수를 기록하는 배열 degrees와노드 간 연결 관계를 저장하는 lists 배열을 초기화한다. 이후 각 간선 정보를 입력받아 진입 차수를 증가시키고,lists에 연결 정보를 저장한다. 이때 degrees[b]를 증가시켜 b로 들어오는 간선의 개수를 기록하고,a에서 b로의 연결을 lists[a]에 추가한다.초기화가 완료되면 진입 차수가 0인 노드를 모두 우선순위 큐 pq에 추가한다.이 큐는 노..
b1202. 보석도둑
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1202  보석의 무게와 가치, 가방의 용량이 주어졌을 때 가방에 단하나의보석이 들어간다고 가정한다면 입력에 따라 최대 얼마만큼의 가치를 담을수있는지 구하는 문제였다. 우선 보석의 무게와 가치를 저장하고 무게에 따라 그리고 가치에 따라 정렬해야할필요성을 느꼈다. 그리하여 jewelry라는 class를 만들고 그 자료형으로 array를 만들었다. 이후 무게를 기준으로 오름차순으로 정렬하되 무게가 같다면 가치가 높은 순서대로내림차순 정렬하도록 하였다. 이후 가방의 용량을 input[] array에 입력받고 오름차순 정렬한 후priority queue를 활용하여 낮은 무게부터 확인해가며 보석을 모두 집어넣기 시작했다. 이후 가방의 용량을 하나씩 올릴때마..