프로그래머스 KAKAO BLIND 2020 문자열 압축 LEVEL2 ( 문자열, 스택 ) JAVA
풀이
문제를 잘읽어야된다.
덩어리로 인덱스를 늘려나가야되는데, 모든 인덱스마다 같은지를 확인하는 거라 착각하였다.
나머지는 구현 문제라 쉽게 해결할 수 있다.
소스 코드
package kakao;
public class StringCompress2020 {
public static void main(String[] args) {
String input= "aa";
int res = solution(input);
System.out.println(res);
}
public static int solution(String s) {
int min=s.length();
for(int i=1;i<s.length();i++){
min = Math.min(solve(i,s),min);
}
return min;
}
public static int solve(int k,String s){
int cur=0;
int cnt=1;
String res="";
while(true){
int next = cur+k;
boolean check=true;
for(int i=0;i<k;i++){
// 같을 때
if(next+i>=s.length()||s.charAt(next+i)!=s.charAt(cur+i)){
check=false;
break;
}
}
if(!check){
if(cnt>1)
res+=String.valueOf(cnt);
if(cur+k>=s.length()){
res+=s.substring(cur,s.length());
break;
}
res+=s.substring(cur,cur+k);
cur = next;
cnt=1;
} else{
cnt++;
cur = next;
}
}
return res.length();
}
}
'Algorithm' 카테고리의 다른 글
프로그래머스 KAKAO BLIND 2020 가사 검색 LEVEL4 ( 트라이 ) JAVA (0) | 2021.04.14 |
---|---|
프로그래머스 KAKAO BLIND2020 괄호 변환 LEVEL2 ( 문자열, 재귀) JAVA (0) | 2021.04.13 |
BOJ 1005번 ACM Craft ( 위상정렬, DP ) JAVA (0) | 2021.04.10 |
BOJ 2623번 음악프로그램 ( 위상 정렬 ) JAVA (0) | 2021.04.10 |
BOJ 1516번 게임 개발 ( 위상 정렬 , DP ) JAVA (0) | 2021.04.10 |