본문 바로가기

백준/실버

[백준 1302번] 베스트셀러 (C++)

문제링크 : https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;

map<string, int> m;
int N, maxV;
string S, result;

int main()
{
    ios_base::sync_with_stdio(0); 
	cin.tie(0);

    cin >> N;
    for(int i=0; i<N; i++) 
    {
        cin >> S;
        m[S]++;
    }

    for(auto i : m)
    {
        if(i.second > maxV)
        {
            maxV = i.second;
            result = i.first;
        }
    }

    cout << result;

    return 0;
}

 

map을 활용하여 현재 입력받은 문자열을 Key, 문자열 에 대한 갯수 Value로 하여 값을 저장한다.

이후 Value의 값의 최대치를 갱신하며, 최대치일 때의 Key값을 따로 저장해주어 출력해주면 된다.