Level 1
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
| participant | completion | return |
|---|---|---|
| ["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
string solution(vector<string> participant, vector<string> completion) {
map<int, string> M1; // 비교를 위한 HashMap
int k = -1; // 완주를 하지 못한 선수가 마지막 주자일 경우 대비
string answer;
sort(participant.begin(), participant.end());
sort(completion.begin(), completion.end()); // 두 객체 정렬 (비교를 쉽게 하기 위하여)
for(int i=0; i<participant.size(); i++)
M1.insert({i, participant[i]}); // HashMap에 요소 삽입
for(int i=0; i<completion.size(); i++) {
if(M1.find(i)->second != completion[i]) {
k = i;
break; // 비교 후 서로 다른 선수일 경우 해당 선수 완주 X
}
}
if(k == -1) {
answer = participant[participant.size()-1]; // 마지막 주자가 완주하지 못했을 경우
} else {
answer = participant[k];
}
return answer;
}