알고리즘 공부

less than 1 minute read

압축 - 2018 카카오
https://programmers.co.kr/learn/courses/30/lessons/17684
flag 사용해서 원하는 것 찾고 반복문 돌리는 것 익숙해지기
string()써서 string 만드는 것
다시 해보자

#include <string>
#include <vector>
using namespace std;

vector<int> solution(string msg) {
    vector<string>::iterator it;
    vector<string> dic = {"-"};
    for (int i = 0; i < 26; i++) {
        dic.push_back(string(1, 'A' + i));
    }
    vector<int> answer;
    bool check = true;
    int j = 0;
    for (int i = 0; i < msg.size(); i++) {
        string tmp = "";
        while (check) {
            tmp += msg[i];
            it = find(dic.begin(), dic.end(), tmp);
            if (it != dic.end()) {
                j = it - dic.begin()+1;
                i++;
            } else {
                check = false;
                answer.push_back(j);
                dic.push_back(tmp);
                i--;
            }
        }
    }
    return answer;
}

소요시간 ; 1시간