Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

[백준] 1417 - 국회의원 선거 본문

알고리즘

[백준] 1417 - 국회의원 선거

JH_Lucid 2021. 6. 14. 13:40

처음엔 while 내에서 계속 정렬을 통해 가장 큰 수와, 다솜이의 수와 비교했으나 priorityQueue를 이용해도 괜찮을 것 같았다.

후보자가 다솜이(1명)만 있을 경우, 0을 리턴하는 코드도 작성 해야 outOfBound(배열 썼을 경우) / NullPointer(큐 썼을 경우) 발생 안함

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {

    public static void main(String args[]) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int dasom = Integer.parseInt(br.readLine());
        PriorityQueue pQ = new PriorityQueue(Collections.reverseOrder());

        if(N == 1) {
            System.out.println(0);
            return;
        }
        for (int i = 0; i < N-1; i++) {
            pQ.offer(Integer.parseInt(br.readLine()));
        }

        int dasom_1 = dasom;

        while (true) {
            int tmp = (Integer)pQ.poll();
            if(dasom > tmp) {
                break;
            } else {
                dasom ++;
                pQ.offer(tmp-1);
            }
        }
        System.out.println(dasom - dasom_1);
    }

}

+ 비록 자바로 푼 사람이 몇 명 안되지만 1등이다!

Comments