반응형
https://programmers.co.kr/learn/challenges?tab=all_challenges
프로그래밍 강의 | 프로그래머스
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
1. 해결방법
문제에서 제시한 개수만큼 글자를 자르고 이전과 다음으로 저장하여 비교하는 방식을 사용하였다.
2. 코드
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int answer = 9999;
void check(int num, string s){
int mok;
if(s.length() % num == 0) mok = s.length() / num;
else mok = s.length() / num + 1;
string result = "";
int check = 1;
string pre; string next;
for(int i = 0; i < mok-1; i++){
pre = s.substr(i*num, num);
next = s.substr((i+1) * num , num);
if(pre == next) check++;
else{
if(check != 1) result += to_string(check) + pre;
else result += pre;
check = 1;
}
}
if(check == 1) result += next;
else result += to_string(check) + pre;
if(result.length() < answer) answer = result.length();
}
int solution(string s) {
answer = 9999;
for(int i = 1; i <= s.length()-1; i++){
check(i, s);
}
if(s.length() == 1) answer = 1;
return answer;
}
반응형
'코딩테스트 > 카카오 코딩테스트' 카테고리의 다른 글
[카카오 코딩테스트]#2. 2020 괄호변환 (0) | 2020.02.16 |
---|