728x90
반응형
programmers.co.kr/learn/courses/30/lessons/60057#
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(string s) {
int ret = 0x7fffffff;
int answer = 0;
for (int c = 1; c <= s.size(); c++) {
int idx = 0;
string copyS[1001];
answer = 0;
for (int i = 0; i < s.size();) {
int C = c;
while (C--) {
if (i == (s.size()))break;
copyS[idx].push_back(s[i++]);
}
idx++;
}
for (int i = 0; i < idx;) {
int cnt = 1;
int ci = 0;
for (int j = i + 1; j < idx; j++) {
if (copyS[i] == copyS[j]) {//압축 가능한경우
cnt++;
}
else {
if (cnt != 1) {//개수 포함 저장
answer+=to_string(cnt).size();
answer += copyS[i].size();
}
else if (cnt == 1) {//1은 제외 하고 저장
answer += copyS[i].size();
}
i = j;
if (i == idx - 1) {
answer += copyS[i].size();
i++;
}
break;
}
ci = j;
}
if (ci == idx - 1) {
i = idx;
if (cnt != 1) {//개수 포함 저장
answer += to_string(cnt).size();
answer += copyS[i-1].size();
}
else if (cnt == 1) {//1은 제외 하고 저장
answer += copyS[i-1].size();
}
}
}
ret = ret > answer ? answer : ret;
}
return ret;
}
int main(void) {
cout << solution("aaaaaaaaaa");
return 0;
}
처음에 이게 당황 스러운게 문자열을 나누는것은 빠른데 카운트 세는것도 문자열로 해서 길이로 계산해야합니다. 이런점만 잘 포인트 살리면 패스 가능합니다.!!!!
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
5653. [모의 SW 역량테스트] 줄기세포배양 (0) | 2020.09.23 |
---|---|
5648. [모의 SW 역량테스트] 원자 소멸 시뮬레이션 (0) | 2020.09.23 |
3109 뱀 (0) | 2020.09.11 |
5656. [모의 SW 역량테스트] 벽돌 깨기 (0) | 2020.09.10 |
17140 이차원 배열과 연산 (0) | 2020.09.08 |
댓글