반응형
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;
}
}
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 1655번 : 가운데를 말해요 (0) | 2021.05.17 |
---|---|
(C++) - 백준(BOJ) 3273번 : 두 수의 합 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 17298번 : 오큰수 답 (0) | 2021.05.01 |
(C++) - 프로그래머스(월간 코드 챌린지 시즌2) : 괄호 회전하기 (0) | 2021.04.21 |
(C++) - 백준(BOJ) 1918번 : 후위 표기식 (0) | 2021.04.14 |