https://school.programmers.co.kr/learn/courses/30/lessons/17684
백준만 풀다가 프로그래머스 문제가 빡세다고 해서 풀어보았다 개어렵다 kakao의 문제는 문자열 위주로 코딩테스트?가 진행 되는건가 싶었는데 오늘 풀고 나서 kakao의 문제는 대부분 문자열 처리인 거 같다는 생각을 했다 오늘 진행한건 일단 lv2 였는데 저녁을 안먹어서 그런지 오지게 안풀렸다 일단 이문제를 푸는데 약 1시간 반정도 걸렸으니 실제로 이문제가 나왔으면 코테에서 널어졌을 거 같다. 나는 일단 이문제를 이렇게 생각했다 사전에서 일단 1개의 문자가 맞는지 탐색한다 맞으면 자신과 자신의 다음문자를 합쳐서 나 이후로 검사한다 만약 또나온다면 합친 문자열에 또 그 다음문자를 합쳐서 검색한다. 그 후 반복이 끝나면 합치기 전에 나의 index를 저장 한다. 이 index는 즉 문자들을 합쳤을때 최종적으로 벡터에 존재하는 문자열을 의미한다.
#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<int> solution(string msg) {
vector<int> answer;
char start = 'A';
int k = 0;
vector<string> dictionary;
for (int i = 1; i <= 26; i++) {
dictionary.push_back(string(1, start));
start++;
}
for (int i = 0; i < msg.length(); i++) {
string temp = string(1,msg[i]);
int endnumber=0;
for (int j = 0; j < dictionary.size(); j++) {
if (temp == dictionary[j]) {
temp = temp + msg[i += 1];
endnumber = j+1;
}
}
answer.push_back(endnumber);
if ((i) == msg.length()) {
continue;
}
dictionary.push_back(temp);
if (i >= 1) {
i = i - 1;
}
}
return answer;
}
int main() {
vector<int> answe1r;
answe1r=solution("TOBEORNOTTOBEORTOBEORNOT");
for (int i = 0; i < answe1r.size(); i++) {
cout << answe1r[i] << '\n';
}
}
'프로그래머스(코테준비)' 카테고리의 다른 글
프로그래머스 모음사전/DFS/C++ (0) | 2024.09.03 |
---|---|
프로그래머스 / 완주 하지 못한 선수 (0) | 2024.08.18 |
게임회사 문제 각색 (0) | 2023.06.13 |
프로그래머스 lv2 멀리 뛰기 (0) | 2023.01.02 |
프로그래머스 lv2 최댓값 최솟값 (0) | 2022.12.28 |