22.02.19 백준 1417번
문제
첫번째 제출한답
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. 반복
결과 -> 정답
Author And Source
이 문제에 관하여(22.02.19 백준 1417번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kmh916/22.02.19-백준-1417번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)