반응형
프로그래머스
카카오 2020 블라인드 테스트
https://programmers.co.kr/learn/courses/30/lessons/60057
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = s.length();
int length = s.length();
if(s.length() == 1)
return 1;
for(int i = 1; i <= length / 2; i++){ //비교 갯수 지정
int count = 1;
string f = s.substr(0, i);
string cmp, cp;
for(int j = i; j < length; j += i){ //처음부터 쭉 비교하기
cmp = s.substr(j, i);
if(!(f.compare(cmp))) //비교 문자가 같으면 count 증가
count++;
else{
if(count == 1){
cp += f;
f = cmp;
}else{
cp = cp + to_string(count) + f;
f = cmp;
count = 1;
}
}
if(j + i >= length){ //마지막에 substr기준을 초과한 경우
if(count != 1){
cp = cp + to_string(count) + f;
break;
}else{
cp = cp + s.substr(j);
break;
}
}
}
answer = (answer > cp.length()) ? cp.length() : answer;
}
return answer;
}
참고
https://hwan-shell.tistory.com/118
반응형
'코딩테스트 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 (0) | 2020.02.27 |
---|---|
[프로그래머스] 쇠막대기 (0) | 2020.02.27 |
[프로그래머스] 모의고사 (0) | 2020.02.27 |
[프로그래머스] 종이접기 (0) | 2020.02.26 |
[프로그래머스] 예산 (0) | 2020.02.26 |