문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
substring 사용해서 n만큼 자르면 되지 않을까?
class Solution {
public String[] solution(String my_str, int n) {
int num = (my_str.length()+n-1)/ n;
String[] answer = new String[num];
for(int i = 0 ; i < num ; i++){
int start = i * n;
int end = 0;
if(start + n >= my_str.length()){
end = my_str.length();
} else {
end = start + n;
}
answer[i] = my_str.substring(start, end);
}
return answer;
}
}
정해지는 배열의 갯수를 구하는데서 헤맸다. 총 7개의 값을 2개씩 자른다고 하면 총 배열의 갯수는 4개가 된다! 그래서 배열의 갯수를 구하는 일반식은 (my_str.length()+n-1)/ n이 된다. 이렇게 될때 substring을 사용하기위해 시작번호와 끝번호도 구해야하는데, 만약 start + n의 값이 my_str.length()보다 크거나 같으면 그냥 그 문자열 전체로 배열 하나가 만들어지는 것이므로 end의 값은 문자열의 길이만큼이 되는거고, 그게 아닌 경우면 시작부터 n까지의 값으로 끊어주면 된다.