📌 문제
📌 풀이
function solution(arr, flag) {
let X = [];
arr.forEach((num, i) => {
if (flag[i]) {
X = X.concat(Array(num * 2).fill(num));
} else {
X.splice(-num, num);
}
})
return X
}
Array()
: 새로운 Array 를 생성할 때 사용한다.
Array(n)은 길이가 n인 배열을 만든다.fill()
: Array.prototype.fill(n)에서 n은 배열을 채울 값이다.
즉, Array(n).fill(n) 은 길이가 n인 배열을 만들고, 배열의 모든 요소를 n으로 채우겠다는 의미이다.concat()
: 두 개 이상의 배열을 병합하는 데 사용된다. 기존 배열을 변경하지 않고, 새 배열을 반환한다.
즉, X와 Array(num * 2).fill(num) 배열을 병합하는 것이다.splice()
: splice 의 start가 음수인 경우 배열의 끝에서부터 요소를 세어나간다.
따라서, 끝에서부터 num번째 요소에서 num개를 제거하게 되는 것이다.
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[프로그래머스] 왼쪽 오른쪽 : JavaScript (0) | 2025.02.02 |
---|---|
[프로그래머스] 2의 영역 : JavaScript (1) | 2025.01.30 |
[프로그래머스] 세로 읽기 : JavaScript (0) | 2025.01.25 |
[프로그래머스] 주사위 게임 3 : JavaScript (1) | 2025.01.19 |
[프로그래머스] 배열 만들기 4 : JavaScript (1) | 2025.01.18 |
댓글