1주차(자료구조) - [C++]백준1302 베스트셀러
문제
예제 입력
코드
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
map<string, int> map;
vector<string> arr;
string temp;
int max = 0;
for (int i = 0; i < N; i++) {
cin >> temp;
if (map.find(temp) == map.end()) {
map.insert({ temp , 1 }); //make_pair(temp, 1)
arr.push_back(temp);
}
else {
map.find(temp)->second += 1;
if (max < map.find(temp)->second)
max = map.find(temp)->second;
}
}
sort(arr.begin(), arr.end());
for (int i = 0; i < arr.size(); i++) {
if (max == map.find(arr[i])->second) {
cout << arr[i] << "\n";
break;
}
}
}
설명
C++ STL(표준 템플릿 라이브러리)에서 map을 사용하여 셀러명과 갯수를 저장하는데 이전에 없다면 insert해줍니다. 만약 있다면 갯수를 증가시키고 베스트(max)값인지 확인합니다. 그리고 사전순으로 먼저 나오는 베스트셀러를 출력합니다.
-pair<자료형, 자료형> 변수명; : 하나의 변수에 2가지 값을 저장함
<algorithm>
-sort(시작, 끝, 비교함수) : 배열의 크기만큼 정렬
<vector>
-vector<자료형> 변수명; : 배열 자료구조 사용
<map>
-map<자료형, 자료형> 변수명; : Key-val형태 자료구조 사용(사전순으로 자동저장)