프로그래머스
[알고리즘] 배열 만들기3
passionfruit
2023. 5. 19. 11:38
배열 만들기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. 이후 두 배열을 합침.
아직 구조분해 문법이 눈에 잘 안익어서, 비슷한 유형의 쿼리 문제를 풀때 최대한 활용해보도록 해야겠다. 쿼리 문제가 너무 헷갈린다.