잘라서 슬라이스 햄으로 저장하기
원래는 통햄인데
비닐이 배열이고 그안에 슬라이스된 햄을 넣는당(?)
그걸 코드로 표현해보장
힌트 : slice() ==> 칼
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
"abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
"abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
function solution(my_str, n) {
var answer = [];
let str = "";
for(let i = 0 ; i < my_str.length; i++){
str+= my_str[i];
if((i+1)%n ==0){
answer.push(str);
str = '';
}else if((i+1) == my_str.length){
answer.push(str);
}
}
return answer;
}
반복하면서 n의 배수일 경우 push 한다 이거였는데
function solution(my_str, n) {
let res = [];
for (let i = 0; i < my_str.length; i+=n) res.push(my_str.slice(i, i+n));
return res;
}
for 문의 i 의 증감식을 보면 i+=n 이라고 되어있다
참 괜찮은 아이디어다
i 를 n 만큼 더해줘서 배열을 잘라서 넣어준다
slice 함수는 i 번째 함수에서 i+n 번째의 앞까지 잘라준다.
이 문자열 더미를 배열에 넣어준당 !