본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 1302번 : 베스트셀러 답

반응형

www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

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

www.acmicpc.net

간단한 map을 이용한 구현이었습니다.

 

풀이방법

 1. 책 이름을 key, 책 이름이 나온 빈도 수를 value로 한 map 변수를 만들어 정보를 저장합니다.

 2. map 자료구조는 자료를 저장할 떄 key값을 기준으로 오름차순으로 정렬되므로 가장 빈도 수가 높은 값을 찾으면 바로 key값을 출력 후 프로그램을 종료하면 됩니다.

Code

#include <bits/stdc++.h>
using namespace std;
map <string,int> m;
int n, cnt ;
int main(){
    cin >> n;
    while(n--){
        string bookName;
        cin >> bookName;
        m[bookName]++;
    }
    for(auto p : m) cnt = max(cnt, p.second);
    for(auto p : m){
        if(p.second == cnt){
            cout << p.first; 
            return 0;
        }
    }
    
}