문자를 1,2,3...s.length()로 쪼개는 부분은 아래처럼 구현했다.
1개식 쪼개는것부터 시작했고
전체 길이를 쪼개는 수(i)로 나눴을때 나눠떨어지지 않는경우에는
나머지 부분을 담기위해 배열에 길이에 +1을 해주었다.
if(s.length()%i==0){
arr = new String[s.length()/i];
}else{
arr = new String[(s.length()/i)+1];
}
값을 배열에 담을때는 substring을 이용했다.
현재 단어의 길이(temp.length())가 쪼개는 수 (i) 보다 크면
temp.substring(0,i)
단어의 길이가 작을때는 단어 전부를 담아주면 되므로
temp.substring(0)을 해주었다.
//배열에 값 넣기
String temp = s;
for(int j=0; j<arr.length; j++){
if(temp.length()>i){
arr[j]=temp.substring(0,i);
temp = temp.substring(i,temp.length());
}else{
arr[j]=temp.substring(0);
}
}
import java.util.*;
class Solution {
public int solution(String s) {
int answer = s.length();
for(int i =1; i<s.length(); i++){
String word="";
int cnt=1;
String [] arr;
if(s.length()%i==0){
arr = new String[s.length()/i];
}else{
arr = new String[(s.length()/i)+1];
}
//배열에 값 넣기
String temp = s;
for(int j=0; j<arr.length; j++){
if(temp.length()>i){
arr[j]=temp.substring(0,i);
temp = temp.substring(i,temp.length());
}else{
arr[j]=temp.substring(0);
}
}
for(int j=0; j<arr.length; j++){
//마지막
if(j==arr.length-1){
if(arr[j].equals(arr[j-1])){
word+=cnt+arr[j];
}else{
if(cnt==1){
word+=arr[j];
}else{
word+=cnt+arr[j-1]+arr[j];
}
}
}else{
if(arr[j].equals(arr[j+1])){
cnt++;
}else{
if(cnt==1){
word+=arr[j];
}else{
word+=cnt+arr[j];
cnt=1;
}
}
}
}
// System.out.println(word);
// System.out.println(Arrays.toString(arr));
if(answer>word.length()){
answer=word.length();
}
}
return answer;
}
}