백준온라인저지

1302번 베스트셀러

wonjjong 2020. 5. 5. 18:27

문제 출처 : https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

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

www.acmicpc.net

 

풀이 과정

책의 제목이 중복으로 입력될 수 있고, 책의 팔린 횟수를 세야 하는 문제였기 때문에 string을 key로 하여 map을 사용했습니다.

 

 1. 책의 제목을 입력으로 받을 때마다 횟수를 증가시켰습니다.

 2. map은 default로 key 값을 기준으로 데이터를 오름차순으로 정렬하기 때문에 반복자를 사용하여 앞에서부터 가장 많이 팔린 책을 검색했습니다. 

 

소스 코드

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<map>
#include<string>
 
using namespace std;
 
int main() {
    string a;
    map<string,int> m;
 
    int n;
    cin >> n;
    for(int i=0; i<n;i++) {
        cin >> a;
        m[a]++;
    }
    int count = 0;
    string bestseller;
    for(map<string,int>::iterator it = m.begin(); it != m.end(); it++) {
            if(count < it->second) {
               count = it->second;
               bestseller= it->first;
            }
    }
    cout << result;
}
cs

 

'백준온라인저지' 카테고리의 다른 글

4344번 평균은 넘겠지  (0) 2020.05.21
2753번 윤년  (0) 2020.05.05
2884번 알람 시계  (0) 2019.11.07
11286번 절댓값 힙  (0) 2019.10.22
2804번 크로스워드 만들기  (0) 2019.10.03