반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/60057
코드
class Solution {
public int solution(String s) {
int answer = 2000;
for (int len = 1; len <= s.length() / 2+1; ++len) {
// len 갯수만큼 문자열 자르자
int tempResult = compress(len, s);
if(answer > tempResult){
answer = tempResult;
}
}
return answer;
}
// len 갯수 만큼 자르자
private int compress(int len, String s) {
StringBuilder sb = new StringBuilder();
int cnt = 1;
String base = "", temp = "";
int begin;
for (begin = 0; begin <= s.length() - len; begin += len) {
temp = s.substring(begin, begin+len);
if (base.equals(temp))
++cnt;
else
{
if(!"".equals(base)){
if(cnt >= 2)
sb.append(cnt + base);
else
sb.append(base);
}
base = temp;
cnt = 1;
}
}
if(cnt >= 2)
sb.append(cnt + temp);
else
sb.append(temp);
String extra = s.substring(begin);
if(extra.length() <= len)
sb.append(extra);
return sb.length();
}
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 뉴스 클러스터링 (0) | 2021.09.03 |
---|---|
[프로그래머스] 오픈채팅방 (0) | 2021.08.26 |
[프로그래머스] 순위 검색 (0) | 2021.08.09 |
프로그래머스 더 맵게 (0) | 2021.07.21 |
프로그래머스 압축 (0) | 2021.07.09 |
최근댓글