출처: 프로그래머스 코딩테스트 연습 , https://school.programmers.co.kr/learn/courses/30/lessons/178871
이 문제도 해쉬 테이블을 이용하는 문제인건 알았지만,
해쉬 테이블에 있는 데이터들을 정렬해서 벡터에 담으려고 하다보니 시간초과가 났다.
해쉬 테이블에 있는 데이터를 바탕으로 , 바로 answer를 조작해서 답을 구하는것이
이 문제를 푸는 방법이다.
#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
using namespace std;
vector<string> solution(vector<string> players, vector<string> callings) {
int N = players.size();
unordered_map <string,int> hash;
vector<string> answer (players);
for(int i = 0 ; i < N; i++){
hash[players[i]] = i;
}
for(string call : callings){
string temp_name = answer[hash[call] - 1];
answer[hash[call] - 1] = call;
answer[hash[call]] = temp_name;
hash[call] --;
hash[temp_name] ++;
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[C++] 프로그래머스 : 정수삼각형 (0) | 2024.02.22 |
---|---|
[C++] 프로그래머스 : 시저 암호 (0) | 2024.02.22 |
[Python] 프로그래머스 : 주차 요금 계산 (0) | 2024.02.14 |
[C++] 프로그래머스 : 순위 (0) | 2024.02.13 |
[Python/C++] 프로그래머스 : 양과 늑대 (0) | 2024.02.08 |