정수 배열
arr
와 2차원 정수 배열queries
이 주어집니다.queries
의 원소는 각각 하나의query
를 나타내며,[i, j]
꼴입니다.각
query
마다 순서대로arr[i]
의 값과arr[j]
의 값을 서로 바꿉니다.위 규칙에 따라
queries
를 처리한 이후의arr
를 return 하는 solution 함수를 완성해 주세요.
제한사항
arr
의 길이 ≤ 1,000arr
의 원소 ≤ 1,000,000queries
의 길이 ≤ 1,000i
< j
< arr의 길이function solution(arr, queries) {
for (let i=0; i<queries.length; i++) {
let memo = arr[queries[i][0]];
arr[queries[i][0]] = arr[queries[i][1]];
arr[queries[i][1]] = memo;
}
return arr;
}
간단하게 index의 번호를 이용하여 위치를 변경하였다.
다만, arr[queries[i][0]] = arr[queries[i][1]];
를 실행하면 원래의 arr
원소의 값이 바뀌기 때문에 let memo = arr[queries[i][0]];
를 통해서 원래 arr에서 필요한 값의 위치를 기억하여 할당해주었다.
function solution(arr, queries) {
queries.forEach( ([a,b]) => {
[arr[a],arr[b]] = [arr[b],arr[a]];
})
return arr;
}
forEach문을 사용하여서queries 배열을 순회한다. 배열 구조 분해 할당을 사용하여 a, b의 값을 교환한다.
function solution(arr, queries) {
for(let [i, j] of queries) {
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
여기서도 배열 구조 분해 할당을 사용하였다!