알고리즘/백준
[Java] BOJ 1715번 카드 정렬하기
컴공맨
2021. 8. 22. 15:24
1715번: 카드 정렬하기
정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장
www.acmicpc.net
풀이
우선 순위 큐를 사용하여 해결했습니다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class Main {
public static int N, answer;
public static PriorityQueue<Integer> pq;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
pq = new PriorityQueue<>();
for (int i = 0; i < N; ++i) {
pq.add(Integer.parseInt(br.readLine()));
}
while (pq.size() > 1) {
int num1 = pq.poll();
int num2 = pq.poll();
answer += (num1 + num2);
pq.add(num1 + num2);
}
System.out.println(answer);
}
}
GitHub - pyo7410/Algorithm: 1일 1커밋을 목표로!
1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.
github.com