본문 바로가기

Algorithm/자료구조

(C++) - 백준(BOJ) 11652번 : 카드 답

반응형

www.acmicpc.net/problem/11652

 

11652번: 카드

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

www.acmicpc.net

map을 사용해 푼 문제였습니다.

 

풀이방법

 1. key : 카드의 수, value : 해당 수가 나온 개수인 map자료구조 변수 m을 선언합니다.

 

 2. 가장 많이 나온 수를 구하고 map을 처음부터 순회하면서 iterator의 second와 같다면 first를 출력하고 종료합니다.

 

*int범위를 초과하므로 변수를 long long으로 선언해야합니다.

 

Code

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n, maxNum;
map<ll,ll> m;
int main(){
    cin >> n;
    while(n--){
        ll x;
        cin >> x;
        m[x]++;
        maxNum = max(maxNum,m[x]);
    }
    for(auto &el : m){
        if(el.second == maxNum){
            cout << el.first;
            return 0;
        }
    }
}