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. 반복

결과 -> 정답

좋은 웹페이지 즐겨찾기