알고리즘 모음(C++)

백준 11652- 카드(C++) 본문

백준

백준 11652- 카드(C++)

공대생의 잡다한 사전 2023. 1. 28. 17:16

문제 링크입니다. https://www.acmicpc.net/problem/11652

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net

MAP을 사용하면 쉽게 풀 수 있는 문제였습니다.

숫자 카드 중, 가장 많은 카드를 구하는 문제입니다.

카드를 입력 받으면서 map을 통해 해당 카드의 갯수를 증가합니다.

마지막에 map을 통해 for문을 이용하면서 가장 많으면서 작은 수를 구해주면 됐습니다.

 

자세한 것은 코드를 참고해주세요

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>
#include <stack>
#include <map>

using namespace std;

int N;
map<long long, int> card;

void solve() {
    long long ans, Max = 0;
    map<long long, int>::iterator i;
    for(i = card.begin(); i != card.end(); i++){
        if(i->second > Max) {
            ans = i->first;
            Max = i->second;
        }
        else if(i->second == Max){
            if(ans > i->first) ans = i->first;
        }
    }
    cout << ans;
}

int main() {
	cin.tie(0);
	cout.tie(0);
	cin >> N;
	for(int i = 1; i <= N; i++){
        long long x;
        cin >> x;
        card[x]++;
    }
	solve();
	return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

'백준' 카테고리의 다른 글

백준 10807 - 개수 세기(C++)  (0) 2023.01.31
백준 7453 - 합이 0인 네 정수(C++)  (0) 2023.01.28
백준 10757 - 큰 수 A+B(C++)  (0) 2023.01.28
백준 1759 - 암호 만들기(C++)  (0) 2023.01.28
백준 1450 - 냅색 문제(C++)  (0) 2023.01.24