✅ 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력
이라는 조건이 있으므로 unordered_map이 아닌 key 기준으로 자동 정렬이 되는 map을 활용
#include <iostream>
#include <map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
string book;
map<string, int> bookList;
for (int i=0; i<N; i++) {
cin >> book;
bookList[book]++;
}
int maxNum = 0;
string maxBook;
for (auto iter=bookList.begin(); iter!=bookList.end(); iter++) {
if (iter->second > maxNum) {
maxNum = iter->second;
maxBook = iter->first;
}
}
cout << maxBook;
return 0;
}
🚨 #include <string>
라이브러리의 find
함수를 활용할 경우 시간초과
string answer = "";
이라는 빈 문자열을 하나 정의하고 이를 스택처럼 활용#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string str, bomb;
cin >> str >> bomb;
string answer = "";
int bombLen = bomb.size();
for (int i=0; i<str.size(); i++) {
answer.push_back(str[i]);
int answerLen = answer.size();
if (answer[answerLen-1] == bomb[bombLen-1] && answerLen >= bombLen) {
bool flag = true;
for (int j=0; j<bombLen; j++) {
if (bomb[j] != answer[answerLen-bombLen+j]) {
flag = false;
break;
}
}
if (flag) {
for (int j=0; j<bombLen; j++) {
answer.pop_back();
}
}
}
}
if (answer.size() == 0) {
answer = "FRULA";
}
cout << answer;
return 0;
}