반응형
https://school.programmers.co.kr/learn/courses/30/lessons/178871?language=cpp
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
#include <iostream>
#include <unordered_map>
using namespace std;
vector<string> solution(vector<string> players, vector<string> callings) {
vector<string> answer;
unordered_map<string, int> name; // name = score
unordered_map<int, string> score; // score = name
for (int i = 0; i < players.size(); i++)
{
name[players[i]] = i;
score[i] = players[i];
}
for (int i = 0; i < callings.size(); i++)
{
if (name[callings[i]] == 0) // 맨 앞이면 걍 넘어가면 됨
continue ;
int cur_score = name[callings[i]];
string prev_name = score[cur_score - 1];
name[callings[i]] = cur_score - 1; // 불린 선수 등수 - 1
name[prev_name] = cur_score; // 앞 선수 등수 + 1
score[cur_score] = prev_name;
score[cur_score - 1] = callings[i];
}
for (int i = 0; i < score.size(); i++)
answer.push_back(score[i]);
return answer;
}
진짜 너무 헷갈린다. 해쉬 문제 많이 풀어봐야 할 듯
반응형
'<algorithm> > 프로그래머스' 카테고리의 다른 글
프로그래머스 대충 만든 자판 c++ (2) | 2023.05.22 |
---|---|
프로그래머스 공원 산책 c++ (0) | 2023.05.22 |
프로그래머스 덧칠하기 c++ (0) | 2023.05.22 |
프로그래머스 추억 점수 c++ (3) | 2023.05.21 |
프로그래머스 124 나라의 숫자(12899)(c++) (0) | 2023.04.12 |