class Solution {
public int solution(String s) {
int min = Integer.MAX_VALUE; //answer;
if(s.length() == 1) return 1;//1인경우 할 필요x
for(int i =1; i<=s.length()/2; i++){
String str=""; //압축한 문자열
String prev=s.substring(0,i); //이전 문자열
int count = 1;
for(int j =i; j<=s.length()-i; j+=i){
String now = s.substring(j,j+i);
if(prev.equals(now)){ //이렇게 함으로써 뒤까지 다검사
count++;
continue;
}
if(count>1){ //위에서 안걸렸는데 1넘은 경우는 해당 문자 반복 끝난거
str += count+prev;
count = 1;
}else{
str +=prev;
}
prev=now; //뒤에께 이제 현재 비교하는 값이엇삼~
}
//맨 마지막 경우 - 마지막에 못 붙인애들 처리~
if(count>1){
str+=count+prev;
count=1;
}else{
str+=prev;
}
//비교 못한애들 붙임~
if(s.length()%i!=0){
str+=s.substring(s.length()-s.length()%i,s.length());
}
if(str.length()<min) min= str.length();
}
return min;
}
}
다음에 다시 풀어봐야겠다,,
'NOTE > 프로그래머스' 카테고리의 다른 글
Level2 - 올바른 괄호 (0) | 2022.03.14 |
---|---|
Level2 - 다음 큰 숫자 (0) | 2022.03.14 |
Level 2-가장 큰 수 (0) | 2022.03.06 |
22.01.08 - (2) (0) | 2022.01.08 |
22.01.08 (0) | 2022.01.08 |