알고리즘/백준

1417번 : 국회의원 선거

코딍코딍 2022. 7. 19. 19:54

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

 

1417번: 국회의원 선거

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

www.acmicpc.net

 

 

문제

 

 

코드

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); sc.nextLine();
        int da = sc.nextInt(); sc.nextLine();
        Integer arr[] = new Integer[n-1];

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

        Arrays.sort(arr, Collections.reverseOrder());

        int count = 0;
        if(n!=1) {
            while (true) {
                if (da > arr[0]) break;
                count++;
                arr[0] -= 1;
                da++;
                Arrays.sort(arr, Collections.reverseOrder());
            }
        }
        System.out.println(count);
    }
}

 

 

해결방법

슈도코드

  1. 다솜이 입력받기
  2. 나머지 후보 입력받아 배열에 저장
  3. 배열 내림차순 정렬
  4. 무한루프
    1. 다솜이가 후보 최댓값보다 크면 탈출
    2. 아니면 후보 최댓값--, 다솜이++
    3. 내림차순 정렬
  5. 출력

+ 총 후보의 수(N)가 1이면 다솜이 출력 후 리턴