본문 바로가기

Algorithm/백준

백준 19638 센티와 마법의 뿅망치

package practice;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

public class Boj19638 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int stature = Integer.parseInt(st.nextToken());
        int limit = Integer.parseInt(st.nextToken());
        int result = 0;
        StringBuilder sb = new StringBuilder();
        PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.reverseOrder());
        for(int i = 0; i < n; i ++){
            int add = Integer.parseInt(br.readLine());
            pq.offer(add);
        }
        if(pq.peek() < stature){
            sb.append("YES\n" + 0);
        }else {

            while (true) {
                if (pq.peek() == 1) {
                    System.out.println("NO\n" + 1);
                    break;
                }
                if (limit == 0) {
                    if (pq.peek() < stature) {
                        sb.append("YES\n" + result);
                    } else {
                        sb.append("NO\n" + pq.peek());
                    }
                    break;
                } else {
                    if (stature <= pq.peek()) {
                        pq.offer((int) Math.floor(pq.poll() / 2));
                        limit--;
                        result++;
                    } else {
                        sb.append("YES\n" + result);
                        break;
                    }
                }
            }
        }

        System.out.println(sb);

    }

}

'Algorithm > 백준' 카테고리의 다른 글

백준 1269 대칭 차집합  (0) 2024.07.26
백준 29728 실버와 소수는 둘다 S로 시작한다  (0) 2024.07.26
백준 15903 카드 합체 놀이  (0) 2024.07.25
백준 11286 절댓값 힙  (0) 2024.07.25
백준 2075 N번째 큰 수  (0) 2024.07.25