문제설명
소스코드
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();
int me = sc.nextInt(); //나 == 다솜
Integer arr[] = new Integer[N-1]; //내림차순 정렬을 위해 박싱
int count = 0; //매수해야 하는 사람 수
for(int i = 0; i < arr.length; ++i) arr[i] = sc.nextInt();
while(true)
{
Arrays.sort(arr, Collections.reverseOrder()); //내림차순 정렬
if(N == 1 || arr[0] < me) break; //N이 0이거나 배열의 가장 큰 수가 나보다 작으면 탈출
else
{
++me;
--arr[0];
++count;
}
}
System.out.print(count);
}
}
설명
- 나(다솜)과 다른 후보의 득표 수를 받는다.
- 다른 후보의 득표수를 저장한 배열을 내림차순으로 정렬시킨다.
- 가장 큰 득표수(arr[0])이 나보다 작으면 반복문을 탈출하고, 그렇지 않다면 가장 많은 득표수를 받은 후보의 지지자 한명을 매수한다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 1252번 문제 (이진수 덧셈) (0) | 2023.10.03 |
---|---|
[Java] 백준 1015번 문제 (수열 정렬) (0) | 2023.10.02 |
[Java] 백준 1026번 문제 (보물) (0) | 2023.09.21 |
[Java] 백준 9663번 문제 (N-Queen) (0) | 2023.08.29 |
[Java] 백준 1302번 문제 (베스트 셀러) (0) | 2023.08.13 |