우선순위큐 3

[우선순위큐,정렬] 백준-2109 순회강연 골드3 (Python)

백준-2109 : 순회강연 https://www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 풀이 입력 받은 정보를 날짜 순으로 정렬을 한다. 정렬한 데이터를 꺼내면서 우선순위 큐에 넣으며 우선순위 큐의 크기가 날짜보다 클경우 가장 작은 비용의 값을 꺼낸다. 코드 (python) import sys import heapq def input(): return sys.stdin.readline().rstrip() n = int(i..

Algorithm 2023.04.15

[그리디] 백준-1744 수 묶기 골드4 (Java)

백준-1744 : 수 묶기 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 아이디어 1을 제외한 양수는 큰수끼리 곱하면 커진다. 1은 더 해준다. 음수 * 음수는 양수이고 작은 음수끼리 곱하면 커진다. 풀이 아래 조건에 따라 우선순위 큐에 넣어준다. 1은 결과에 더해준다. 1보다큰 값끼리 우선순위큐에 넣어준다. 1보다 작은값 끼리 우선순위 큐에 넣어준다. 우선순위 큐에 2개 이상 존재할때 곱하여 결과에 더해주고 1개의 경우에는 꺼내서 더해준다..

Algorithm 2023.04.04

[그리디] 백준-1715 카드 정렬하기 골드4 (Java)

백준 1715번 : 카드 정렬하기 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 풀이 입력받은 값을 우선 순위 큐에 넣는다. (정렬을 하기 위해) 우선 순위 큐에 2개 이상 존재할 때 두개를 꺼내서 합한 이후에 다시 우선순위 큐에 넣는 것을 반복한다. 코드 (java) import java.util.*; public class Baejoon1715 { public static void main(String[] args) { Sc..

Algorithm 2023.04.02