배열 만들기3
배열 arr의 첫번째 구간에 해당하는 배열과 두번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return.
arr | intervals | result |
[1, 2, 3, 4, 5] | [[1, 3], [0, 4]] | [2, 3, 4, 1, 2, 3, 4, 5] |
나의 풀이:
function solution(arr, intervals) {
var answer = []
for(i = 0; i < intervals.length; i++) {
for(j = intervals[i][0]; j <= intervals[i][1]; j++) {
answer.push(arr[j])
}
} return answer
}
첫번째 구간(intervals[i][0]) 과 두번째 구간(intervals[i][1]) 에 있는 arr[j] 값을 answer 에 push 함.
다른 풀이:
function solution(arr, intervals) {
const [[a,b],[c,d]] = intervals
return [...arr.slice(a,b+1), ...arr.slice(c,d+1)]
}
Destructuring 문법을 사용하여, intervals 의 값을 [[a,b],[c,d]] 에 할당한 후 범위만큼 slice. 이후 두 배열을 합침.
아직 구조분해 문법이 눈에 잘 안익어서, 비슷한 유형의 쿼리 문제를 풀때 최대한 활용해보도록 해야겠다. 쿼리 문제가 너무 헷갈린다.
'프로그래머스' 카테고리의 다른 글
[코딩기초트레이닝] 머쓱이 스탬프 획득 (0) | 2023.07.12 |
---|---|
[알고리즘] 주사위게임3 (0) | 2023.05.25 |
[알고리즘] l로 만들기 (0) | 2023.05.06 |
[알고리즘] 최빈값 구하기 / 객체 (0) | 2023.05.04 |
[알고리즘] 간단한 식 계산하기 / eval() (0) | 2023.04.28 |