백준 Baekjoon 1302 베스트셀러
사용언어
Visual studio 2019 C++
문제 간단요약
많이팔린 책이름 출력하기! 2권다 똑같이 많이팔렸으면 사전순으로 출력하기 !!
ex) aa bb -> aa가 출력
생각하기
bestseller의 struct를 생성해서 풀어보자!!!!
[1302 풀이]
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int N;
struct bestsell {
int cnt; // 책의 개수
string book; // 책이름
};
vector<bestsell> v;
bool compare(bestsell a, bestsell b) {
if (a.cnt == b.cnt) // 책의 개수가 같으면
return a.book < b.book; // 사전순으로!
else
return a.cnt > b.cnt;
}
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
int n = 0;
int t = 0;
string s; cin >> s;
for (int i = 0; i < v.size(); i++) {
if (v[i].book == s) {
n++;
t = i;
break;
}
}
if (n) { // 이미 vector에 있다면
v[t].cnt += 1; // 책의 개수만 추가
}
else { // 없다면
bestsell bb;
bb.book = s;
bb.cnt = 1;
v.push_back(bb);
}
}
sort(v.begin(), v.end(), compare); // 개수와 사전순으로 정렬
cout << v[0].book << "\n";
}
Comments