문자열 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"] |
function solution(my_str, n) {
const arr = my_str.split("")
for(let i = 1; i<my_str.length/n; i++){
arr.splice(i*(n+1)-1,0,"-")
}
return arr.join("").split("-").filter(el => el !== "")
}
my_str을 문자 단위로 split()한 배열을 arr
이라고 하고
const arr = my_str.split("")
// my_str = "abc1Addfgg"
// arr = ["a","b","c","1","A","d","d","f","g","g"]
arr의 index i*(n+1)-1에 "-"를 추가한다
for(let i = 1; i<my_str.length/n; i++){
arr.splice(i*(n+1)-1,0,"-")
}
// n = 4
// i = 1일 때, i*(n+1)-1 = 1*(4+1)-1 = 4
// arr = ["a","b","c","1","-","A","d","d","f","g","g"]
// i = 2일 때, i*(n+1)-1 = 2*(4+1)-1 = 9
// arr = ["a","b","c","1","-","A","d","d","f","-","g","g"]
// i = 3일 때, i*(n+1)-1 = 3*(4+1)-1 = 14
// arr = ["a","b","c","1","-","A","d","d","f","-","g","g",,,"-"]
arr을 join()하고 "-"기준으로 split()한 배열에서 ""가 아닌 요소만 필터링하여 반환한다
return arr.join("").split("-").filter(el => el !== "")
// arr.join("") = "abc1-Addf-gg-"
// "abc1-Addf-gg-".split("-") = ["abc1","Addf","gg",""]
// ["abc1","Addf","gg",""].filter(el => el !== "") = ["abc1","Addf","gg"]