[백준 1417, Cpp] 국회의원 선거

나무에물주기·2022년 10월 21일
0

Coding Test

목록 보기
58/77
// 백준 1417 국회의원 선거

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    int n; // 후보 수 변수
    int dasom; // 배열의 첫번째 변수
    int count = 0; // 카운트 변수
    vector<int> v; // 벡터 생성

    cin >> n; // 후보 수 입력
    for (int i = 0; i < n; i++) // n번 반복
    {
        // 투표수를 입력받고 벡터에 저장
        int a;
        cin >> a;
        v.push_back(a);
    }

    // 입력값이 1이면 1을 출력하고 종료
    if (n <= 1)
    {
        cout << 0;
        return 0;
    }

    dasom = v[0]; // dasom을 벡터의 첫번째 요소로 설정

    while (true) // 무한 루프
    {
        sort(v.begin() + 1, v.end()); // v[1] ~ v.end()까지 정렬
        if (dasom > v.back()) // v[0]이 v.back()(투표수의 최대값)보다 크면 루프 탈출
            break;
        if (dasom <= v.back()) // v[0]이 v.back보다 작거나 같으면
        {
            dasom++; // dasom = dasom + 1
            count++; // count = count + 1
            v.back()--; // 벡터의 마지막 요소 -1
        }
    }

    cout << count; // count 출력

    return 0;
}
profile
개인 공부를 정리함니다

0개의 댓글