[프로그래머스] 수열과 구간 쿼리 3

0
post-thumbnail

❔ [문제]

정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.

  • 제한사항
    • 1 ≤ arr의 길이 ≤ 1,000
      • 0 ≤ arr의 원소 ≤ 1,000,000
    • 1 ≤ queries의 길이 ≤ 1,000
      • 0 ≤ i < j < arr의 길이


❕ [내 풀이]

function solution(arr, queries) {
    var answer = [];
    answer = arr;
    for(let j = 0; j < queries.length; j++) {
    
            let num1 = answer[queries[j][0]];
            let num2 = arr[queries[j][1]];
            answer[queries[j][1]] = num1;
            answer[queries[j][0]] = num2;
    }
    return answer;
}

❕❕❕ [깔끔하다고 생각된 풀이]

function solution(arr, queries) {
    queries.forEach( ([a,b]) => {
        [arr[a],arr[b]] = [arr[b],arr[a]];
    })
    return arr;

0개의 댓글