Level 0 )배열의 원소만큼 추가하기

Doozuu·2023년 5월 10일
0

프로그래머스 (JS)

목록 보기
111/183

문제 설명

아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

제한사항

1 ≤ arr의 길이 ≤ 100
1 ≤ arr의 원소 ≤ 100

입출력 예

arr	result
[5, 1, 4]	[5, 5, 5, 5, 5, 1, 4, 4, 4, 4]
[6, 6]	[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
[1]	[1]

풀이

처음에 arr을 mapping해서 각 원소를 해당 수만큼 repeat한 다음에 합쳐서 다시 split하는 방식을 생각했는데, 그러면 숫자가 한 자리수가 넘어가면 제대로 split이 되지 않았다.

그래서 반복문을 이용해 새로운 배열에 담아주었다.

function solution(arr) {
    let answer = [];
    for(let i=0;i<arr.length;i++){
        for(let j=0;j<arr[i];j++){
             answer.push(arr[i]);
        }
    }
    return answer;
}

다른 풀이

reduce의 acc,cur을 이용해 배열을 합칠 수 있다.

function solution(arr) {
    return arr.reduce((list, num) => [...list, ...new Array(num).fill(num)], []);
}
profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글