[ 프로그래머스 | js ] 잘라서 배열로 저장하기

YuRim Lee·2023년 2월 3일
0
post-thumbnail

잘라서 슬라이스 햄으로 저장하기
원래는 통햄인데
비닐이 배열이고 그안에 슬라이스된 햄을 넣는당(?)
그걸 코드로 표현해보장

힌트 : slice() ==> 칼

문제 설명

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

입출력 예

입출력 예 설명

입출력 예 #1

"abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.

입출력 예 #2

"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 번째의 앞까지 잘라준다.
이 문자열 더미를 배열에 넣어준당 !

profile
성장하는개발자

0개의 댓글