https://school.programmers.co.kr/learn/courses/30/lessons/17684
#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;
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (힙(Heap)) Lv 2. 더 맵게 (0) | 2023.07.04 |
---|---|
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] n진수 게임 (0) | 2023.07.03 |
[Programmers] (2022 KAKAO BLIND RECRUITMENT) Lv 2. k진수에서 소수 개수 구하기 (0) | 2023.06.26 |
[Programmers] (해시) Lv 2. 전화번호 목록 (0) | 2023.06.26 |
[Programmers] (깊이/너비 우선 탐색(DFS/BFS)) Lv 2. 타겟 넘버 (0) | 2023.06.22 |
댓글