https://school.programmers.co.kr/learn/courses/30/lessons/120913
문자열 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"] |
"abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
"abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
class Solution {
public String[] solution(String my_str, int n) {
int len=my_str.length()/n;
String temp="";
if(my_str.length()%n>0){
len=len+1;
}
String[] answer = new String[len];
for(int i=0;i<len;i++){
for(int j=0;j<n;j++){
if(my_str.length()<n){
temp=my_str;
}
else{
temp=temp+my_str.charAt(j);
}
}
answer[i]=temp;
my_str=my_str.replaceFirst(temp,"");
temp="";
}
return answer;
}
}
my_str
의 길이를 n
으로 나눠서 배열의 크기를 정해줬다.
만약 0으로 안나눠져서 배열 크기가 부족해지니까 +1을 해줬다.
그리고 반복문을 돌리면서 만약, 남은 문자열 길이가 자르기로 한 크기보다 작으면 그대로 남은 문자열을 배열에 넣었다. 그렇지 않으면 크기대로 잘라서 temp
에 넣고 temp
와 같은 문자열은 공백으로 바꿨다.