https://www.acmicpc.net/problem/1417
1417번: 국회의원 선거
첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같
www.acmicpc.net
다음 문제는 주어진 수들 중 최대값을 찾아 arr[0]의 값과 +1, -1 씩 교환하고 최대값이 arr[0] 으로 되기 전까지 다시 최대값을 찾아 이 계산을 반복한다.
▶코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int index = 0, max = 0, cnt = 0;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
max = arr[0];
for (int i = 1; i < N; i++) {
if (max <= arr[i]) {
max = arr[i];
index = i;
}
}
while (true) {
if (index == 0)
break;
arr[0]++;
arr[index]--;
cnt++;
max = arr[index];
for (int i = 0; i < N; i++) {
if (max <= arr[i]) {
max = arr[i];
index = i;
}
}
}
System.out.println(cnt);
}
}
'알고리즘 > 백준 풀이(그리디)' 카테고리의 다른 글
백준 1931번 - 회의실 배정 (0) | 2024.02.24 |
---|---|
백준 1213번 - 팰린드롬 만들기 (1) | 2024.02.05 |
백준 1105번 - 팔 (0) | 2024.02.03 |
백준 11501번 - 주식 (1) | 2024.02.03 |
백준 2847번 - 게임을 만든 동준이 (1) | 2024.02.03 |