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
'알고리즘 > 백준' 카테고리의 다른 글
[Java] BOJ 14002번 가장 긴 증가하는 부분 수열 4 (0) | 2021.08.24 |
---|---|
[Java] BOJ 5052번 전화번호 목록 (0) | 2021.08.23 |
[Java] BOJ 9935번 문자열 폭발 (0) | 2021.08.22 |
[Java] BOJ 1976번 여행 가자 (0) | 2021.08.20 |
[Java] BOJ 15684번 사다리 조작 (0) | 2021.08.18 |