[프로그래머스/Java] Lv.0 수열과 구간 쿼리 3

febCho·2024년 3월 3일
0

코딩테스트

목록 보기
29/253
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의 길이

풀이

이 문제의 관건은 다소 어렵게 출제된 문제를 이해하는 것과 2차원 배열이 1차원 배열이 여러 개 모인 자료 구조라는 점을 상기하는 것이라고 생각한다.

특히 이중 for문이 아닌 확장 for문을 사용해 int[][] queries 속 [i,j]로 꼴로 이루어진 개별 query들에 접근해 인덱스가 될 값들을 받아오기만 하면 상상 이상으로 간단히 해결된다.

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        for(int[] query : queries){
            int i = query[0];
            int j = query[1];
            
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        return arr;
    }
}

결과

결과

profile
Done is better than perfect.

0개의 댓글