DEV/Algorithm

[백준] 10813번 공바꾸기 문제

veee2 2023. 5. 29. 20:39

공략 순서

1. N바구니는 1번 부터 N번까지 번호가 매겨져 있다. -> N = 5라면 "1, 2, 3, 4, 5"

2. 바구니에는 공이 1개씩 들어있음

3. 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. -> 2번 바구니면 2

4. 바구니에 담긴 공을 교환

 

의 형식으로 코드를 작성할면 되겠습니다.

 

import java.util.Scanner;

/**
 * Main
 */
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();

        int[] arr = new int[N];
        int temp;
        
        // 배열의 index는 0부터 시작[0,1,2,3,4,5]
        for (int i = 0; i < N; i++) {
            arr[i] = i+1; // 첫번째는 0이지만, 첫번째 바구니이기 때문에 +1
        }

        for (int j = 0; j < M; j++) { //m은 4
            int I = sc.nextInt();
            int J = sc.nextInt();

            temp = arr[I-1];
            arr[I-1] = arr[J-1];
            arr[J-1] = temp;
        }

        for (int k = 0; k < arr.length; k++) {
            System.out.print(arr[k] + " ");
        }
    }
}

// 5 4
// 1 2
// 3 4
// 1 4
// 2 2