const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim()
.split('\n').map(Number)
const num = input[0];
const one = input[1]
const arr = input.slice(2)
const solution = (num, one, arr) => {
if(num === 1) return 0
let max = Math.max(...arr)
let count = 0
while(one <= max){
arr[arr.indexOf(max)] -= 1
one += 1;
count++;
max = Math.max(...arr)
}
return count
}
console.log(solution(num, one, arr));
총 후보자수 num
,
기호 1번의 득표수 one
,
다른 후보자의 득표수 배열 arr
이라고 했을 때
다음을 반복한다.
one
보다 다른 최대득표 후보자의 득표수arr[arr.indexOf(max)]
가 많거나 같을 때
one
은 +1, arr[arr.indexOf(max)]
은 -1 한다.
그리고 count를 증가시킨 뒤 max
를 다시 계산한다.
one
이 다른 후보자의 득표수보다 많을 때, 최종 count를 반환한다.