문제 & 링크
https://www.acmicpc.net/problem/11652
풀이
!! 범위를 고려하여 long long int 자료형을 사용하여야 함 !!
1. map 자료구조를 사용하여 입력받을 카드의 숫자를 키, 해당 카드가 나온 횟수를 값으로 가지도록 한다.
* map 자료구조의 특징으로는 키와 값을 쌍으로 가진다는 것, 레드-블랙 트리(균형 이진 트리)를 사용하여 키를 오름차순으로 정렬하여 관리한다는 것, 중복 키를 허용하지 않는다는 것 등이 있다.
2. 입력받은 숫자를 map 자료구조에 삽입하고 해당 키와 쌍으로 이루어진 값을 1 증가시킨다.
3. auto를 이용해서 map을 순회한 후, 최빈값을 찾아낸다.
* auto는 변수의 타입을 자동으로 추론하여 선언할 수 있게 해주는 기능으로, 이 문제를 해결할 때는 map의 iterator(반복자)로 사용되었다.
코드
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
int N;
map<long long, int> M;
cin >> N;
for (int i = 0; i < N; i++) {
long long x;
cin >> x;
M[x]++;
}
int max = 0;
long long ans;
for (auto i = M.begin(); i != M.end(); i++) {
if (max < i -> second) {
max = i -> second; // map의 값(int)
ans = i -> first; // map의 키(long long)
}
}
cout << ans;
}
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python3] 1152번: 단어의 개수 (0) | 2024.07.12 |
---|---|
[백준/Python] 10773번: 제로 (0) | 2024.07.11 |
[백준/C++] 1673번: 치킨 쿠폰 (0) | 2024.07.09 |
[백준/Python3] 9996번: 한국이 그리울 땐 서버에 접속하지 (0) | 2024.07.08 |
[백준/Python] 2010번: 플러그 (0) | 2024.07.08 |