문제
https://programmers.co.kr/learn/courses/30/lessons/60057
시행착오
중첩된 for문의 기준을 어떻게 두어야 할지 많이 헷갈렸다...
덧셈보다 곱셈으로 하는 것이 횟수가 깔끔하게 떨어질 것 같았음
코드
class Solution {
public int solution(String s) {
int answer = 1000;
int s_len = s.length();
int grouping_len = s.length()/2;
if(s_len==1){
return 1;
}
for(int i=1; i<=grouping_len ; i++){
String compStr1 = "";
String resultStr = "";
int cnt = 1;
for(int j=0; j<s_len/i; j++){
String compStr2 = s.substring((i*j), (i*j)+i);
if(compStr1.equals(compStr2)){
cnt++;
continue;
}
if(cnt>1){
resultStr += cnt+compStr1;
}else{
resultStr += compStr1;
}
compStr1 = compStr2;
cnt = 1;
}
if(cnt>1){
resultStr += cnt+compStr1;
}else{
resultStr += compStr1;
}
//System.out.println(resultStr);
if(s_len % i != 0){
resultStr+= s.substring(s_len - (s_len%i), s_len);
}
answer = Math.min(resultStr.length(), answer);
}
return answer;
}
}
'Preparing Coding Test > Programmers L2' 카테고리의 다른 글
[Java/프로그래머스/브루트 포스] 카펫 (0) | 2020.08.28 |
---|---|
[Java/프로그래머스] H-Index (0) | 2020.08.23 |
[Java/프로그래머스] 카카오프렌즈 컬러링북 (0) | 2020.08.15 |
[Java/프로그래머스] 멀쩡한 사각형 (0) | 2020.08.12 |
[Java/프로그래머스] 프린터 (0) | 2020.08.12 |