첫번째 제출한답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
int cnt=0; //매수한 횟수
int max = 0;
int maxIndex = 0;
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
if(arr[i]>=max) {
max = arr[i];
maxIndex = i;
}
}
while(true) {
if(maxIndex==0) {
break;
} else {
arr[maxIndex]--;
arr[0]++;
cnt++;
}
max = 0;
for (int i = 0; i < n; i++) {
if(arr[i]>=max) {
max = arr[i];
maxIndex = i;
}
}
}
System.out.println(cnt);
}
}
접근방식
1.입력받은 값의 배열(찍으려고하는 사람수)의 최댓값(max)과 해당 인덱스(maxIndex)를 구하고 반복문을 돌린다
2.maxIndex가 다솜이라면(maxIndex==0) 반복문을 종료시키고 아니라면 else 문(매수 =>최고득표자표--,다솜이표++,매수횟수++)을 실행한다.
3.다시 max와 maxIndex를 구한다.
4. 반복
결과 -> 정답