정렬을 이용해서 해결할 수 있는 문제이다.
#include <bits/stdc++.h>
using namespace std;
long long arr[100002];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for (int i = 0; i < n; ++i) cin >> arr[i];
sort(arr, arr + n);
// max를 1로 초기화 하지 않으면 n이 2이고 입력이 1, 2같은 경우에 1이 아닌 2가 출력이 됨
int max = 1, cnt = 1;
long long card = arr[0]; // 모든 cnt가 1인 경우
for (int i = 1; i < n; ++i) // 이전값을 확인해야 하므로 i가 0부터 시작하면 안됨
{
if (arr[i] == arr[i - 1]) cnt++;
else cnt = 1;
if (cnt > max)
{
max = cnt;
card = arr[i];
}
}
cout << card;
}