백준 1715 카드정렬

업데이트:

카드정렬

처음에 카드 그룹 갯수를 받는 N을 카드 그룹중 하나인줄알고 한참 예시를 이해 못함..

우선순위 큐를 사용해서 항상 작은것들을 먼저 가져와 계산하고 추가해주는 방식으로 구현함

import java.util.*;

public class Main{
    public static void main(String[] args){
        
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        
        for(int i = 0; i < N; i++){
            pq.offer(sc.nextInt());
        }
        
        int result = 0;
        
        while(!pq.isEmpty()) {
            int first = pq.poll();
            if(pq.isEmpty()) {
               break;
            }
            int second = pq.poll();
            
            result += first + second;
            pq.offer(first + second);
        }
        System.out.println(result);
    }
    
    
}

댓글남기기