[프로그래머스/코딩테스트/Javascript] 잘라서 배열로 저장하기

TED·2023년 10월 5일
0

Javascript CodingTest

목록 보기
41/63

< 오늘의 문제 >

잘라서 배열로 저장하기

잘라서 배열로 저장하기

function solution(my_str, n) {
    let strArr = my_str.split("");
    let answer = [];
    
    while(strArr.length > 0){
        answer.push(strArr.splice(0,n).join(""));
    }
    
    return answer;
}
  • 나의 풀이
    : 배열의 길이가 n씩 잘랐을때 딱 맞게 떨어지지 않으면 남은 요소를 n의 길이와 상관없이 그대로 배열에 저장하라는 말이
    키포인트라고 잘못 생각해서 고생좀했다. 남은건 어떤 메서드를 쓰든 앵간하면 알아서 저장되는거같다;
    splice 메서드는 원본 배열에서 요소를 제거하고 해당 요소를 반환한다. 따라서 원본 배열을 변경하면서 요소를 잘라내게 된다.
    while문을 사용하여 원본 배열의 길이가 0이 될 때까지 splice를 사용하여 요소를 잘라내면, 모든 요소를 잘라내면서도 원본 배열은 빈 배열이 되지 않는다. 이렇게 잘라낸 요소들을 배열에 추가하면서 새로운 배열을 생성하고 반환하는 방식이다. 이렇게 함으로써 원본 배열을 손상시키지 않고 원하는 결과를 얻을 수 있다.
function solution(my_str, n) {
    let answer = [];
 
    for(let i = 0; i < my_str.length; i += n) {
        answer.push(my_str.substr(i, n));
    }
 
    return answer;
}
  • 다른 사람 풀이
    : 원래 내가 풀고싶었던 방식이라 들고왔다.
    i의 증감식을 생각해내지 못해서 못풀었는데, 저렇게 하면 되는구나? ㅠ,.ㅠ
    for(let i = 0; i < my_str.length; i += n) for 루프를 사용하여 문자열을 순회.
    루프는 i를 n만큼 증가시킴으로써 문자열을 잘라낼 위치를 계산.
    answer.push(my_str.substr(i, n)) substr 메서드를 사용하여 문자열 my_str에서 i부터 시작하여 길이 n만큼의 부분 문자열을 추출하고, 이를 배열 answer에 추가.
profile
컴맹 개발 입문자

0개의 댓글