반응형
https://programmers.co.kr/learn/courses/30/lessons/60057
글쓴이의 답
개인적인 풀이 임으로
이것보다 더 좋은 알고리즘은 많음...
이렇게도 풀이하는구나.. 공유하기 위해 올림...
#include <string>
#include <vector>
#include <queue>
using namespace std;
int calculation(string input, int len) {
string result;
queue <string> save;
string tmp;
string next;
int count = 1;
int i = 0;
while (1) {
tmp = input.substr(i*len, len);
i++;
if (tmp.size() != len) {
if(tmp.size() != 0)
save.push(tmp);
break;
}
else {
save.push(tmp);
}
}
while (!save.empty()) {
tmp = save.front();
save.pop();
count = 1;
while (1) {
if (save.empty()) {
if (count > 1) {
result += to_string(count) + tmp;
}
else {
result += tmp;
}
break;
}
next = save.front();
if (!tmp.compare(next)) {
count++;
save.pop();
}
else {
if (count > 1) {
result += to_string(count) + tmp;
}
else {
result += tmp;
}
break;
}
}
}
count = result.length();
return count;
}
int solution(string s) {
int answer = s.length();
int result = 0;
int i = 0;
for (i = 1; i <= s.length() / 2; i++) {
result = calculation(s, i);
if (answer > result) {
answer = result;
}
}
return answer;
}
꾸준히 하다보면 실력이 늘겠지..
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스][C++] 카카오프렌즈 컬러링북 (0) | 2022.03.20 |
---|---|
[프로그래머스][C++] 오픈채팅방 (0) | 2022.03.20 |
[프로그래머스][C++] 직사각형 별찍기 (0) | 2022.03.20 |
[프로그래머스][C++] x만큼 간격이 있는 n개의 숫자 (0) | 2022.03.20 |
[프로그래머스][C++] 행렬의 덧셈 (0) | 2022.03.20 |