티스토리 뷰
당일 팔린 책 중 가장 많이 팔린 책의 이름을 출력한다.(같은 값이 있을 경우 사전순 가장 앞의 값을 출력)
#include<iostream>
#include<vector>
#include<map>
using namespace std;
string dicCompare(string first, string second) {
if (first > second) return first;
else return second;
}
string solution(vector<string> &bookName) {
map<string, int> frequency;
for (int i = 0; i < bookName.size(); i++) {
if (frequency.find(bookName[i]) != frequency.end()) {
int t = frequency.find(bookName[i])->second;
frequency.find(bookName[i])->second = t + 1;
}
else {
frequency.insert(pair<string, int>(bookName[i], 1));
}
}
int many = 0;
string answer;
for (map<string, int>::iterator it = frequency.begin(); it != frequency.end(); it++) {
if (it->second > many) {
answer = it->first;
many = it->second;
}
else if (it->second == many && dicCompare(answer, it->first) == answer) {
answer = it->first;
many = it->second;
}
}
bookName.clear();
return answer;
}
int main() {
int bookCnt = 0;
string tmp;
vector<string> bookName;
cin >> bookCnt;
for (int i = 0; i < bookCnt; i++) {
cin >> tmp;
bookName.push_back(tmp);
tmp.clear();
}
cout << solution(bookName);
return 0;
}
'알고리즘 문제 풀이' 카테고리의 다른 글
[알고리즘문제] 백준 회사에 있는 사람(7785번) (0) | 2021.04.13 |
---|---|
[알고리즘문제] 백준 패션왕 신해빈(9375번) (0) | 2021.04.13 |
[알고리즘문제] 프로그래머스 위장 (0) | 2021.04.08 |
[알고리즘문제] 릿코드 Design HashMap (0) | 2021.04.08 |
[알고리즘문제] 릿코드 Design Hash Set (0) | 2021.04.08 |