[프로그래머스] 카카오_문자열 압축 (자바 풀이)
- 알고리즘 문제 해결(PS)/[프로그래머스]
- 2022. 3. 8.
문제
풀이
이 문제는 간단한 구현 문제이다. 문자열을 압축할 zip 함수를 만들어 해결하였다. 1개씩 묶는 것부터 s의 길이까지 묶는 갯수를 늘려서 가장 짧은 길이로 압축 되는 것을 확인 하면 된다.
코드
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 1000000;
for(int i=1; i<=s.length(); i++){
answer = Math.min(zip(s,i), answer);
}
return answer;
}
/* 문자열 압축 함수 */
public static int zip(String s, int len){
String ret = "";
String prev = s.substring(0,len);
String cur = "";
int cnt = 1;
for(int idx = len ; idx<s.length(); idx+= len){
if(idx + len > s.length()){ // 마지막 부분 잘리는 경우
cur = s.substring(idx);
}else{
cur = s.substring(idx, idx+len);
}
if(cur.equals(prev)){
cnt++;
}else{
if(cnt > 1){
ret += String.valueOf(cnt) + prev;
}else{
ret += prev;
}
cnt = 1;
prev = cur;
}
}
if(cnt > 1){
ret += String.valueOf(cnt) + prev;
}else{
ret += cur;
}
if(ret.length() == 0){
return s.length();
}
return ret.length();
}
}
반응형
'알고리즘 문제 해결(PS) > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] 카카오_자물쇠와 열쇠 (자바 풀이) (0) | 2022.03.09 |
---|---|
[프로그래머스] 카카오_괄호 변환 (자바 풀이) (0) | 2022.03.09 |
[프로그래머스] 카카오_길찾기 게임 (자바 풀이) (0) | 2022.02.22 |
[프로그래머스] 카카오_파일명 정렬 (자바 풀이) (1) | 2022.02.15 |
[프로그래머스] 카카오_압축 (자바 풀이) (0) | 2022.02.14 |