728x90
https://www.acmicpc.net/problem/11652
11652번: 카드
준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지
www.acmicpc.net
1. 문제
준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다.
준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다.
2. PS
- map을 사용하여 해결함.
- 주어진 카드의 숫자의 범위를 생각해서 long long을 사용해야함.
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int main() {
int n;
map<long long ,long long> m1;
long long ans = 0;
long long tmp = 0;
cin >> n;
for(int i = 0 ; i < n; i++) {
long long num;
cin >> num;
m1[num]++;
}
for(auto it = m1.begin(); it != m1.end(); ++it) {
if(it->second > tmp) {
tmp = it->second;
ans = it->first;
}
}
cout << ans;
}
'BOJ > C++' 카테고리의 다른 글
BOJ [C++]) 10825번 국영수 (0) | 2021.12.23 |
---|---|
BOJ [C++]) 10799번 쇠막대기 (0) | 2021.12.23 |
BOJ [C++]) 1076번 저항 (0) | 2021.12.21 |
BOJ [C++]) 10816번 숫자 카드 2 (0) | 2021.12.21 |
BOJ [C++]) 10815번 숫자 카드 (0) | 2021.12.21 |