[백준] 15903번: 카드 합체 놀이 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 풀이 모든 과정이 끝났을 때, 카드의 합을 최소화하려면 카드들 중에서 가장 작은 두 카드를 더해야 한다. 이를 위해 우선순위 큐를 사용하여 가장 작은 두 카드를 꺼내어 합을 구하고, 합한 값으로 변한 두 카드를 다시 우선순위 큐에 넣어주면 된다. 코드 import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.buffer..
[백준] 11000번: 강의실 배정 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 풀이 LectureTime 데이터 클래스를 정의하여 Comparable 인터페이스를 구현한다. 시작시간을 기준으로 오름차순 정렬하도록 고 만약 시작시간이 같다면 종료시간을 기준으로 정렬한다. 입력받은 시간을 LectureTime 배열에 저장하고 이 배열을 정렬해준다. 우선순위 큐를 선언하고 첫번째 수업의 종료 시간을 큐에 넣는다. 배열을 순회하면서 만약 현재 강의의 시작 시간이 우선순위 큐의 최상단의 강의의 종료 시간보다 작거나 같으면 해당 강의는 해당 강의실에서 진행 가능하므로 우선순위 큐에서 poll(..
[백준] 2075번: N번째 큰 수 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 풀이 Comparator를 활용하여 우선순위 큐를 내림차순으로 정의하고, 입력받은 숫자를 우선순위 큐에 저장한다. 그 후, N번째 큰 수를 출력해준다. 코드 import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val num = br.readLine().toInt() val pq = PriorityQueue(Comparator ..