
내가 생각했을때 문제에서 원하는부분
정수 배열 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;
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.