백준-Node.js-1417, 국회의원 선거

송철진·2023년 2월 22일
0

백준-Node.js

목록 보기
34/69

풀이

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를 반환한다.

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글