본문 바로가기

백준 문제풀기/JAVA

[백준 10811 JAVA 자바] 바구니 뒤집기

i번째 바구니부터 j번째 바구니를 역순으로 만든다

 

예를들어

1 2 3 4 5 6 7 이렇게 있을 때 

3 6이 입력 된다면

1 2 6 5 4 3 7 이 됩니다

 

조금 복잡해 보이지만

한단계씩 해봅시다

 

코드입니다

 

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

        int M = scan.nextInt();
        int N = scan.nextInt();

        int[] arr = new int[M];
        for (int i = 0; i < M; i++) {
            arr[i] = i + 1;
        }

        for (int j = 0; j < N; j++) {
            int a = scan.nextInt();
            int b = scan.nextInt();
            
            a=a-1;
            b=b-1;

            if (b != a) {
                int[] arr2 = new int[b-a + 1];
                for (int i = 0; i < (b-a + 1); i++) {
                    arr2[i] = arr[b-i];
                }
                for (int i = 0; i < (b-a + 1); i++) {
                    arr[a+i] = arr2[i];
                }                
            }
        }

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

}

저는 임시배열  arr2를 만들어서

뒤집은 배열을 교체해주었습니다