안녕하세요. 오늘은 근무표를 작성할 거예요.
https://www.acmicpc.net/problem/31408
가장 많이 나오는 수가 나온 횟수를 mx라고 합시다.
mx가 N/2를 올림한 수보다 작거나 같으면 YES입니다.
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N, i, x, cnt[101010] = { 0 }, mx = 0;
cin >> N;
for (i = 1; i <= N; i++)
{
cin >> x;
cnt[x]++;
mx = max(mx, cnt[x]);
}
if (mx <= (N + 1) / 2) cout << "YES";
else cout << "NO";
}
감사합니다.