메모리 초과...

 

배열 객체를 생성하고, 꺼내고 집어넣고를 반복해서 그런것 같다.

좀 더 간단한 방법을 찾아봐야겠다.

import java.util.Scanner;

public class Main {

    public static int[] makeDeck(int num){
        int[] deck = new int[num];
        for(int i = 0; i < deck.length; i++){
            deck[i] = i+1;
        }
        return deck;
    }

    public static void status(int[] Card){
        //덱확인
        for(int i = 0; i < Card.length; i++){
            System.out.println(Card[i]);
        }
    }

    public static void arrange(int[] Card) {
        int size = Card.length;

        int save = 0;
        int[] renew = new int[size - 1];

        for(int i = 0; i < renew.length; i++){
            renew[i] = Card[i+1];
        }
        //status(renew);
        save = renew[0];
        for (int i = 0; i < renew.length - 1; i++) {
            renew[i] = renew[i+1];
        }
        renew[renew.length - 1] = save;
        if(renew.length != 1){
            arrange(renew);
        }
        if(renew.length == 1){
            System.out.println(renew[0]);
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //카드덱 생성
        int[] Card = makeDeck(sc.nextInt());

        //로직 구현
        arrange(Card);
    }
}