당직 근무표 (백준 31408)

코딩생활·2024년 2월 18일
0

백준문제풀이

목록 보기
241/308

안녕하세요. 오늘은 근무표를 작성할 거예요.

문제

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";
}


감사합니다.

0개의 댓글