🗃️javascript/프로그래머스

잘라서 배열로 저장하기(Lv.0)[slice(시작, 끝부분 + 1) 시작~끝부분 출력]

하얀성 2023. 3. 18. 14:07

 

문자열 my_str과 n이 매개변수로 주어질 때, 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"]

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

  • "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.

유의사항
  • 입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function solution(my_str, n) {
    let no_cut_arr = [...my_str]
    let cutIndex = no_cut_arr.length / n
    let cut_arr = [];
    
    for(let i = 1; i <= n; i++ ){
        if(cutIndex * i > no_cut_arr.length -1 ){
            
        }
        let arr3 = no_cut_arr.splice(0,(cutIndex * i))
        let arr4 = no_cut_arr
         console.log(arr3)
        console.log(arr4)
        
    }
}
cs

처음에 splice 와 반복문으로 풀어보려 햇으나 너무 복잡해서 중간에 pass

 

파이썬의 longspace()같은 함수 있나 찾아보다 없다는 것을 깨달았는데 다들 반복문을 통해 배열을 일정 길이로 쪼개고 있었음. (arr 과 cutIndex는 필요없는 변수다.)

unction solution(my_str, n) {
    let arr = [...my_str]
    let cutIndex = arr.length / n
    let arr2 = [];

    for(let i=0; i<arr.length; i += n){
        let tempArr = '';
        tempArr = arr.slice(i, i + n)
        arr2.push(tempArr.join(""))
    }
    return arr2
}

i, i+n 을 출력한 모습.

입력값 "abc1Addfggg4556b", 6
기댓값 ["abc1Ad", "dfggg4", "556b"]
실행 결과 테스트를 통과하였습니다.
출력 0 6
6 12
12 18
테스트 2
입력값 "abcdef123", 3
기댓값 ["abc", "def", "123"]
실행 결과 테스트를 통과하였습니다.
출력 0 3
3 6
6 9