https://school.programmers.co.kr/learn/courses/30/lessons/178871
#include <string>
#include <vector>
#include <map>
using namespace std;
vector<string> solution(vector<string> players, vector<string> callings) {
vector<string> answer;
// player들의 등수 정보 = players 배열
// 추월한 선수 정보 = callings 배열
// 추월 = 현재 등수 1 감소, 올라간 등수의 player의 등수 1 증가
// 불린 선수의 현재 등수를 알아내기
// 현재 등수를 1 감소시킨다.
// 감소시킨 등수를 가진 player를 찾고, 그 player의 등수를 1 증가
map<string,int> play;
map<int, string> call;
for(int i = 0;i<players.size();i++){
string player = players[i];
play[player] = i + 1;
call[i + 1] = player;
}
for(int i = 0;i<callings.size();i++){
string calling = callings[i];
int now = play[calling];
string frontPlayer = call[now - 1];
play[calling]--;
play[frontPlayer]++;
call[now - 1] = calling;
call[now] = frontPlayer;
}
for(int i = 1;i<=players.size();i++){
answer.push_back(call[i]);
}
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 2] 124 나라의 숫자 (0) | 2024.06.16 |
---|---|
[Lv 2] 게임 맵 최단거리 (0) | 2024.06.15 |
[Lv 1] 덧칠하기 (0) | 2024.06.13 |
[Lv 1] 대충 만든 자판 (0) | 2024.06.13 |
[Lv 1] 카드 뭉치 (0) | 2024.06.13 |