알고리즘 문제

어니·2022년 12월 30일
0

Algorithm

목록 보기
4/5
post-thumbnail

문제 | 잘라서 배열로 저장하기

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


제한사항

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

입출력 예

my_strnresult
"abc1Addfggg4556b"6["abc1Ad", "dfggg4", "556b"]
"abcdef123"3["abc", "def", "123"]


📓 문제 해석하기

- result는 배열로 나와야 한다.
- n씩 자르고 배열에 넣은 후, 문자열에 남아 있으면 안된다.
(즉 길이에 영향을 미치면 안된다. 라고 생각)
- 반복문이 필요함!


// 풀이
function solution(my_str, n) {
  
    let arr = [];
    
    for(let i=0; i < my_str.length; i+=n){
        arr.push(my_str.slice(i,i+n))
    };
        return arr;
};

💡 여기서 포인트 💡

for문의 i로 n의 갯수마다 증가하는 값을 구해야 함.

  • for(let i=0; i < my_str.length; i+=n) 이 부분에서 n의 갯수만큼 반복해서 늘어나도록 for문 증감식에 i = i + n 으로 적어줌.

  • n = 3 이라면 i값은 0 ▸ 3 ▸ 6 으로 늘어나게 된다.

  • slice(stateIndex, endIndex) 함수와 n을 이용하여 n의 갯수만큼 잘라준다!

  • 그 다음 arr.push()를 이용하여 배열에 넣어주면 끝!


✚ str.slice(startI, endI)는 endIndex값은 안 들어간다는 것 잊지말기!

let str = 'abcdef'

str.slice(1,4)
// 예상 output: 'bcde'

// 하지만 endIndex의 값은 안 들어가기 때문에,
// 실제 output: 'bcd'
profile
개린이

0개의 댓글