문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
n씩 자르고 남은 나머지도 한 인덱스에 넣어 주어야 했기 때문에 경우의 수를 나누어 문자열 배열 answer의 길이를 다르게 했다. 그리고 StringBuffer 객체를 사용해 잘라낸 문자열 my_str을 append()로 누적하되, 그 길이가 n과 같아진다면 answer에 저장, 외부에서 선언한 인덱스 값을 +1 하고, 버퍼 객체는 setLength()를 사용해 초기화 해주었다.
그리고 n씩 나뉘어 떨어지지 않아 버퍼 객체에 my_str의 요소들이 남아 있을 경우 answer의 마지막 인덱스에 추가적으로 대입해 주었다. 버퍼 객체 역시 isEmpty()가 사용 가능하나 toString()으로 문자열 형변환 후 사용해야 한다는 점을 알게 되었다. 그런데 지금 보니 그냥 if(!sb.length() == 0) 이렇게 해도 되었을 것 같다는 생각^^;
class Solution {
public String[] solution(String my_str, int n) {
String[] answer = {};
if(my_str.length() % n == 0){
answer = new String[my_str.length() / n];
}else{
answer = new String[my_str.length() / n + 1];
}
StringBuffer sb = new StringBuffer();
int idx = 0;
for(int i=0; i<my_str.length(); i++){
sb.append(my_str.charAt(i));
if(sb.length() == n){
answer[idx] = sb.toString();
idx++;
sb.setLength(0);
}
}
if(!sb.toString().isEmpty()) answer[idx] = sb.toString();
return answer;
}
}
