#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
vector<string> solution(vector<string> players, vector<string> callings) {
map<string, int> nameMap;
map<int, string> rankMap;
int idx = 0;
for(auto player : players) {
nameMap[player] = idx;
rankMap[idx] = player;
idx++;
}
vector<string> answer = players;
for(auto player : callings) {
// 호명한 선수의 현재 등수
int grade = nameMap[player];
// 앞섰던 선수의 이름
string name = rankMap[grade-1];
answer.at(grade-1) = player;
answer.at(grade) = name;
swap(nameMap[player], nameMap[name]);
swap(rankMap[grade-1], rankMap[grade]);
}
return answer;
}