PLOD

[백준] 캠프가는 영식(1590) 본문

대외 활동 및 IT 지식/알고리즘 문제 풀이 정리

[백준] 캠프가는 영식(1590)

훌룽이 2026. 4. 13. 18:11

🔗 문제 링크

https://www.acmicpc.net/problem/1590

✅ 코드

import java.io.*;
import java.util.*;

public class 백준_1590 {
    static int[][] arr;
    static PriorityQueue<Integer> busTime;
    public static void main(String[] args) throws Exception {
        int answer = -1;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        st = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(st.nextToken());
        int t = Integer.parseInt(st.nextToken());

        arr = new int[n][3];

        for(int i = 0; i < n ; i++){
            st = new StringTokenizer(br.readLine());

            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
            arr[i][2] = Integer.parseInt(st.nextToken());
        }

        busTime = new PriorityQueue<>();
        for (int i = 0; i < n; i++) {
            for(int j = 0 ; j < arr[i][2]; j++){
                busTime.add(arr[i][0] + arr[i][1] * j);
            }
        }

        while (!busTime.isEmpty()) {
            int x = busTime.poll();
            if(x >= t){
                answer = x - t;
                break;
            }
        }


        System.out.println(answer);
        br.close();
    }
}

💡 배운 점 & 느낀 점

1. PriorityQueue<Integer> → 우선순위 자료구조 (defaulr 최소 힙 구조)

2. Heap 자료구조에서 순서가 보장되려면 Poll로 자료를 뽑아내야 한다

Comments