문제 설명
입출력
문제풀이
class Solution {
public int solution(String s) {
int answer = s.length();
for(int k=1 ; k<=s.length()/2 ; k++) {
StringBuilder temp = new StringBuilder();
for(int i=0 ; i<s.length() ; i = i+k) {
String word = "";
if(i+k >= s.length()) {
word = s.substring(i, s.length());
}else{
word = s.substring(i, i+k);
}
int cnt = 1;
StringBuilder sb = new StringBuilder();
for(int j=i+k ; j<s.length() ; j=j+k) {
String word2 = "";
if(j+k >= s.length()) {
word2 = s.substring(j, s.length());
} else {
word2 = s.substring(j, j+k);
}
if(word.equals(word2)) {
cnt++;
i = j;
} else {
break;
}
}
if(cnt == 1){
sb.append(word);
}else{
sb.append(cnt).append(word);
}
temp.append(sb.toString());
}
answer = Math.min(answer, temp.toString().length());
}
return answer;
}
}
※ 내 생각
이 문제는 문자열을 이용하는 문제입니다.
문자열 중에서 substring을 활용하면 쉽게 해결할 수 있습니다.
단위 별로 짤라서 확인하면서 갯수를 세주면 됩니다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 도둑질 (자바) / DP (0) | 2021.11.01 |
---|---|
[프로그래머스] 정수 삼각형(자바) / DP (0) | 2021.10.30 |
[프로그래머스] 타겟 넘버(자바) / DFS (0) | 2021.10.22 |
[프로그래머스] 다단계 칫솔 판매(자바) / 자료구조 & 구현 (0) | 2021.10.17 |
[프로그래머스] 행렬 테두리 회전하기 ( 자바) / 구현 (0) | 2021.10.16 |