[알고리즘] 백준 1715 카드정렬하기

Halo·2025년 5월 11일
0

Algorithm

목록 보기
41/85
post-thumbnail

🔍 Problem

1715 카드정렬하기


📃 Input&Output


📒 해결 과정

가. 우선순위 큐를 사용하여 오름차순으로 나열한다.
나. 가장 작은 앞에 두개를 더하고 더한 값을 우선순위 큐에 다시 넣는다.


💻 Code


import java.util.*;

public class P1931 {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[][] arr = new int[N][2];

        for (int i = 0; i < N; i++) {
            arr[i][0] = sc.nextInt();
            arr[i][1] = sc.nextInt();
        }

        Arrays.sort(arr, (a, b) -> {
            if (a[1] == b[1]) {
                return Integer.compare(a[0], b[0]);
            }
            return Integer.compare(a[1], b[1]);
        });
        int time = 0;
        int cnt = 0;
        for (int i = 0; i < N; i++) {
            if (arr[i][0] >= time) {
                time = arr[i][1];
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}

🎸 기타

가. 우선순위 큐

import java.util.PriorityQueue
import java.util.Collections


PriorityQuere<자료형> que = new PriorityQuere<>();	//내림차순
PriorityQuere<자료형> que = new PriorityQuere<>(Collection.reverseOrder()); //오름차순
  • que.add(값)
  • que.poll() : 맨 첫번째로 우선순위 높은거

🤔 느낀점

자바식 우선순위 큐 사용법에 대해 알게되었다.

profile
새끼 고양이 키우고 싶다

0개의 댓글