카드 역배치

문제 풀러가기

10804

코드

import java.util.*;

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

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

    for(int i = 0; i < 10; i++) {
      int a = sc.nextInt();
      int b = sc.nextInt();
      a -= 1;
      b -= 1;

      while(a <= b) {
        int tmp = arr[a];
        arr[a] = arr[b];
        arr[b] = tmp;
        a++;
        b--;
      }
    }

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

설명

입력된 값들 사이에 있는 카드들을 뒤집어야한다. 1부터 20까지 들어간 배열을 만들고, 섞을 위치를 입력받는데 위치에 따른 배열의 인덱스 값을 사용해야하기 때문에 입력 받은 값들에서 1씩 뺐다.