본문 바로가기

백준/실버

[백준 11652번] 카드 (C++)

문제링크 : https://www.acmicpc.net/problem/11652

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;

int N;
map<ll, int>m;

int main()
{
    ios_base::sync_with_stdio(0); 
	cin.tie(0);

    cin >> N;
    for(int i=0; i<N; i++)
    {
        ll n; cin >> n;
        m[n]++;
    }

    ll maxV = 0, idx;
    for(auto i : m)
    {
        if(i.second > maxV)
        {
            maxV = i.second;
            idx = i.first;
        }
    }

    cout << idx;

    return 0;
}

 

입력받은 값을 Key로 map에 담아 카운팅해준다.

이후 카운팅된 Value를 기준으로 가장 큰 값의 Key를 따로 담아서 출력해주면 된다.

주의해야 할 점은 값의 범위가 크므로, long long으로 선언해주어야 한다.