그럴듯한 개발 블로그
반응형

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;
}

진짜 너무 헷갈린다. 해쉬 문제 많이 풀어봐야 할 듯

반응형
profile

그럴듯한 개발 블로그

@donghyk2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!