
코드
#include <string>
#include <vector>
#include <unordered_map> // 해시
#include <algorithm> // swap : 두 변수의 값을 교환
using namespace std;
vector<string> solution(vector<string> players, vector<string> callings) {
vector<string> answer=players;
unordered_map<string, int> hashmap; // string : 선수 이름, int : 순위 (인덱스)
for(int i=0;i<answer.size();i++){
hashmap[answer[i]]=i; // 선수 순위 저장
}
for(int i=0;i<callings.size();i++){
int idx=hashmap[callings[i]]; // 해설진이 부른 순위(인덱스)
hashmap[answer[idx-1]]++; // 현재 순위에서 해설진이 부른 선수의 앞의 순위인 선수의 등수 하락 ex) 3위 -> 4위
hashmap[callings[i]]--; // 해설진이 부른 선수 등수 상승 ex) -> 4위 -> 3위
swap(answer[idx-1], answer[idx]); // answer 값에서 해설진이 부른 선수와 앞 순위 선수 등수 변경
}
return answer;
}
'C++ > programmers 코딩테스트(level 1) C++' 카테고리의 다른 글
C++ 이웃한 칸 (0) | 2024.08.20 |
---|---|
C++ [1차] 캐시 (0) | 2024.08.20 |
[C/C++] programmers Level 1 대충 만든 자판 (0) | 2023.11.06 |
[C/C++] programmers Level 1 둘만의 암호 (0) | 2023.11.05 |
[C/C++] programmers Level 1 햄버거 만들기 (0) | 2023.11.04 |