<BOJ>1715번: 카드 정렬하기
문제
접근
PriorityQueue
를 사용하면 간단하게 풀 수 있는 문제이다.- 입력 값이 오름차순으로 정렬된 구조로 저장되게 하되, 첫 두 수를 합하고 그 합한 결과 또한 저장해야 함. 이 과정을 원소가 1개가 남을 때 까지 반복하면 된다.
내 코드
import java.io.*;
import java.util.PriorityQueue;
public class Main {
static PriorityQueue<Long> pq = new PriorityQueue<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
long result = 0;
while (n-- > 0) {
pq.add(Long.parseLong(br.readLine()));
}
while (pq.size() > 1) {
long a = pq.poll();
long b = pq.poll();
result += a + b;
pq.add(a + b);
}
System.out.println(result);
}
}
Author And Source
이 문제에 관하여(<BOJ>1715번: 카드 정렬하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@songs4805/BOJ1715번-카드-정렬하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)