문제

문제 링크

어떻게 접근할 것인가?

  • 카드를 맵에 저장하고 각 숫자에 대한 값을 추가해주는 식으로 했다.
  • 그리고 매번 가장 큰 숫자인지 확인해주고 결과를 출력한다.

코드

#include <iostream>
#include <vector>
#include <map>

using namespace std;

int main(){
    map<long long, long long> m;
    long long N, input, max_num = -1, max_count = -1;
    cin >> N;
    
    for(int i = 0 ; i < N; i++){
        cin >> input;
        if(m.find(input)->second == m.end()->second)m[input] = 0;
        else m[input] ++;
        
        if((m[input] > max_count) || (m[input] == max_count && input < max_num) ){
            max_count = m[input];
            max_num = input;
        }
    }
    cout << max_num;

}