https://programmers.co.kr/learn/courses/30/lessons/42576
string solution(vector<string> participant, vector<string> completion) {
string answer = "";
sort(participant.begin(), participant.end());
sort(completion.begin(), completion.end());
for(int i = 0; i < completion.size(); i++){
if(participant[i] != completion[i])
return participant[i];
}
return participant.back();
}
근데 해쉬 파트 문제였다...
string solution(vector<string> participant, vector<string> completion) {
//string answer = "";
std::unordered_multiset<string> u_mset;
for(int i =0; i < participant.size(); ++i){
u_mset.emplace(participant[i]);
}
for (int i = 0; i < completion.size(); ++i) {
auto it = u_mset.find(completion[i]);
u_mset.erase(it);
}
return *u_mset.begin();
}
multiset 으로 풀어봤다... 딱히 key 와 value 를 나눌 필요는 없어 보였다.
새롭게 알게 된 건... erase 할 때 같은 key 는 모두 지워버린 다는 것? 하나만 지우게 강제해줬다.