본문 바로가기
Coding Test/Programmers

[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] 압축

by song.ift 2023. 7. 3.

https://school.programmers.co.kr/learn/courses/30/lessons/17684

 

코딩테스트 연습 - [3차] 압축

TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34]

school.programmers.co.kr

 

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

#define ALPHABET 64

vector<int> solution(string msg) {
    vector<int> answer;
    unordered_map<string, int> m;

    for (size_t i = 0; i < msg.size();)
    {
        int j = 2;
        while (m.count(msg.substr(i, j)) && i + j <= msg.size()) ++j;

        if (j == 2) answer.emplace_back(msg[i] - ALPHABET);
        else answer.emplace_back(m[msg.substr(i, j - 1)]);
        
        m.insert(make_pair(msg.substr(i, j), 27 + m.size()));
        i += j - 1;
    }

    return answer;
}

GitHub : https://github.com/developeSHG/Algorithm-Baekjoon_Programmers/blob/79417a9f8a8c0d4596ae089db8c45ff122226c78/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/lv2/17684.%E2%80%85%EF%BC%BB3%EC%B0%A8%EF%BC%BD%E2%80%85%EC%95%95%EC%B6%95/%EF%BC%BB3%EC%B0%A8%EF%BC%BD%E2%80%85%EC%95%95%EC%B6%95.cpp

 

GitHub - developeSHG/Algorithm-Baekjoon_Programmers: 백준 and 프로그래머스 소스코드

백준 and 프로그래머스 소스코드. Contribute to developeSHG/Algorithm-Baekjoon_Programmers development by creating an account on GitHub.

github.com

 

댓글