728x90
반응형
1. 문제
programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자
programmers.co.kr
2. 풀이
- 나에겐 어려워 다른 사람들의 소스를 참고하였다.
- 다음에 다시 한번 풀어봐야겠다.
3. 코드
class Solution {
static int min = Integer.MAX_VALUE;
public int solution(String s) {
int answer = 0;
if(s.length()==1) return 1;
for(int i =1; i<=s.length()/2; i++){
answer = divide(s,i);
}
return answer;
}
static int divide(String s, int idx){
int cnt=1;
String result = "";
String pattern = "";
for(int i=0; i<=s.length()+idx; i+=idx){
String now;
if(i>=s.length()){
now="";
}else if(s.length()<i+idx){
now = s.substring(i);
}else{
now = s.substring(i,i+idx);
}
if(i!=0){
if(now.equals(pattern))
cnt++;
else if(cnt>=2){
result += cnt+pattern;
cnt=1;
}else
result += pattern;
}
pattern = now;
}
return min = Math.min(min,result.length());
}
}
반응형
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 Lv1] 실패율(Java) (0) | 2024.03.04 |
|---|---|
| [프로그래머스 Lv2] 카카오프렌즈 컬러링북(Java) (0) | 2024.03.04 |
| [프로그래머스 Lv2] 더 맵게(Java) (0) | 2021.01.08 |
| [프로그래머스 Lv2] 괄호 변환(Java) (0) | 2021.01.07 |
| [프로그래머스 Lv2] 가장 큰 수(Java) (0) | 2021.01.07 |