코딩테스트/백준

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

GAEBAL 2022. 3. 10. 16:39
728x90

문제

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

 

1417번: 국회의원 선거

첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같

www.acmicpc.net

 

풀이

쉬운 문제임

 

for문을 돌면서 후보자들 중 가장 많은 표를 가지고 있는 후보자를 찾고 그 표가 다솜이의 표보다 많다면 그 후보자의 표를 -1 해주고 다솜이의 표를 +1 해준다.

while(true){ ] 안에서 다솜이의 표가 다른 후보자들의 표보다 많아질 때까지 정답에 해당하는 로직을 반복하면 된다.

 

진짜 이게 끝임!

 

 

코드

// 1417번 국회의원 선거
// https://www.acmicpc.net/problem/1417

package BAEKJOON;

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

public class Num1417_국회의원선거 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int[] arr = new int[N - 1];
        int count = 0;
        int dasom = Integer.parseInt(br.readLine());

        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(br.readLine());
        }

        while (true) {
            int max = Integer.MIN_VALUE;
            int maxIndex = -1;

            for (int i = 0; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                    maxIndex = i;
                }
            }

            if (dasom <= max) {
                arr[maxIndex]--;
                dasom++;
                count++;
            } else {
                break;
            }
        }

        System.out.println(count);
    }
}
728x90