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

KIMYEONGJUN·2026년 5월 16일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

Main21 클래스에서는 main 메서드가 프로그램의 시작점 역할을 한다.
이 메서드에서 문제 해결 로직이 담긴 Solution3 클래스의 solution 메서드를 호출한다.
입력으로 주어진 배열 arr와 쿼리 배열 queries를 전달하며, 쿼리에 따라 배열의 요소들이 교환된 최종 결과를 반환받는다.
그 결과를 Arrays.toString 메서드를 통해 [3, 4, 1, 0, 2] 형식의 문자열로 출력한다.
Solution3 클래스에는 실제 문제의 핵심 로직이 담긴 solution 메서드가 있다.
이 메서드는 쿼리 배열을 순회하면서 각 쿼리의 두 인덱스 위치에 해당하는 배열 요소들을 서로 맞바꾸는 작업을 수행한다.
모든 쿼리를 처리한 뒤 결과 배열을 반환한다.

코드로 구현

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; 
    }
}

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 수열과 구간 쿼리 3
public class Main21 {
    public static void main(String[] args) {
        Solution3 solution3 = new Solution3();
        int[] arr = {0, 1, 2, 3, 4};
        int[][] queries = {{0, 3}, {1, 2}, {1, 4}};

        int[] result = solution3.solution(arr, queries);

        System.out.println(Arrays.toString(result));
    }
}

class Solution3 {
    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
Junior backend developer

0개의 댓글