쉬운 정렬 + 비교문제이다. 내 코드에서는 매 회차마다 정렬을 수행하는데 자료량이 커지면 무리가 올거 같다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void input_vote(vector<int>& vote, int *dasom)
{
int N, i, temp;
cin >> N;
cin >> *dasom;
for (i = 0; i < N - 1; i++)
{
cin >> temp;
vote.push_back(temp);
}
return;
}
void find_answer(vector <int>& vote, int dasom)
{
int i, j;
int count = 0;
bool mesu = false;
while (1)
{
mesu = false;
sort(vote.begin(), vote.end(), greater<>());
for (i = 0; i < vote.size(); i++)
{
if (vote[i] >= dasom)
{
vote[i]--;
dasom++;
count++;
mesu = true;
break;
}
}
if (mesu == false)
{
break;
}
}
cout << count;
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
vector<int> vote;
int dasom;
input_vote(vote, &dasom);
find_answer(vote, dasom);
return 0;
}