99클럽 코테 스터디 24일차 TIL - 백준 1417(국회의원선거)

Gaeng·2024년 11월 20일
post-thumbnail

1417 백준 국회의원 선거 문제 링크

문제 해결

  1. 배열 입력 및 정렬:

    • 배열을 입력받되, 첫 번째 인덱스를 제외한 나머지 값을 Arrays.sort를 사용해 오름차순으로 정렬합니다.
  2. 무한반복 실행:

    • while 루프를 사용하여, 배열의 첫 번째 인덱스 값과 정렬된 마지막 인덱스 값을 비교합니다.
  3. 조건에 따른 반복 종료:

    • 첫 번째 인덱스 값이 마지막 인덱스 값보다 크면 반복을 멈춥니다.
    • 그렇지 않으면, 마지막 인덱스 값을 1 감소시키고, 첫 번째 인덱스 값을 1 증가시킵니다. 동시에 cnt를 증가시킵니다.
  4. 결과 반환:

    • 반복이 종료되면 cnt 값을 반환하여 문제를 해결합니다.

알게된 것.

Arrays.sort(arrN, 1, N) 인덱스 범위를 선택할 수 있음.

코드

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

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[] arrN = new int[N];
        boolean result = true;
        int cnt = 0;
        for (int i = 0; i < N; i++) {
            arrN[i] = Integer.parseInt(br.readLine());
        }
        if (N != 1) {
            Arrays.sort(arrN, 1, N);
        }
        while (result) {
                if(N==1) {
                    result = false;
                    break;
                }
                if (arrN[0] > arrN[N - 1]) {
                    result = false;
                    break;
                } else {
                    arrN[N - 1]--;
                    arrN[0]++;
                    cnt++;
                    Arrays.sort(arrN, 1, N);
                }
        }
        System.out.println(cnt);
    }
}
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글