문제) 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항)
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
입출력 예)
my_str | n | result |
"abc1Addfggg4556b" | 6 | ["abc1Ad", "dfggg4", "556b"] |
"abcdef123" | 3 | ["abc", "def", "123"] |
입출력 예 설명)
입출력 예 #1
- "abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
입출력 예 #2
- "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
유의사항)
- 입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
풀이)
1. my_str의 길이를 n으로 나눈 나머지가 짝수인지 홀수인지 구분해서 n으로 자른 결과를 담을 answer 배열의 길이를 다르게 할당한다.
2. 구한 길이 만큼 반복문을 돌면서 substring한 문자열을 answer에 담는다.
3. 자르고 남은 문자열을 담는 건 my_str 길이와 비교해서 조건문으로 다르게 지정해준다.
4. 자른 문자열을 담은 answer 배열을 리턴한다.
class Solution {
public String[] solution(String my_str, int n) {
int len = 0;
if(my_str.length()%n == 0) {
len = my_str.length()/n;
}
else {
len = my_str.length()/n+1;
}
String[] answer = new String[len];
for(int i=0; i<len; i++) {
if((i*n+n) > my_str.length()) {
answer[i] = my_str.substring(i*n, my_str.length());
break;
}
answer[i] = my_str.substring(i*n,i*n+n);
}
return answer;
}
}