
정수 배열
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;
}
여기서도 배열 구조 분해 할당을 사용하였다!