728x90
class Solution {
public int solution(String s) {
int answer = s.length();
for (int ii = 1; ii <= s.length() / 2; ii++) {
int pos = 0;
int length = s.length();
for (; pos + ii <= s.length();) {
String unit = s.substring(pos, pos + ii);
pos += ii;
int count = 0;
for (; pos + ii <= s.length();) {
if (unit.equals(s.substring(pos, pos + ii))) {
count++;
pos += ii;
} else
break;
}
if (count > 0) {
length -= ii * count;
if (count < 9)
length += 1;
else if (count < 99)
length += 2;
else if (count < 999)
length += 3;
else
length += 4;
}
answer = Math.min(answer, length);
}
}
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/60057
728x90
'코딩 테스트' 카테고리의 다른 글
2606번 바이러스(자바, java) - DFS (0) | 2023.01.09 |
---|---|
프로그래머스 네트워크 - DFS (0) | 2023.01.09 |
이진탐색 샘플 (0) | 2023.01.09 |
프로그래머스 - 로또의 최고 순위와 최저 순위 자바 (0) | 2023.01.09 |
프로그래머스 - 다단계 칫솔 판매 자바 java (0) | 2023.01.09 |