본문 바로가기
알고리즘

[JAVA]백준 10974번: 모든 순열

by Kwoncorin 2021. 1. 1.
728x90

www.acmicpc.net/problem/10974

 

10974번: 모든 순열

N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

1. 문제 설명

 

n이 주어졌을 때, 1부터 n까지의 수로 이루어진 순열을 사전 순으로 출력하는 문제이다.

ArrayList를 사용해서 사전 순으로 String을 만들어가고 ArrayList가 비었을 때 만든 문자열을 출력한다.

 

2. 코드

 

import java.awt.image.BufferedImageFilter;
import java.io.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

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

        int num=scan.nextInt();

        ArrayList<Integer> list=new ArrayList<Integer>(num);

        for(int i=1;i<=num;i++)
            list.add(i);

        make_list(list,"");

    }

    public static void make_list(ArrayList<Integer> list,String answer){
        if(list.isEmpty()){
            System.out.println(answer);
        }else{
            for(int i=0;i<list.size();i++){
                int temp=list.get(i);
                String temp_answer=answer+temp+" ";
                list.remove(i);
                make_list(list,temp_answer);
                list.add(i,temp);

            }

        }
    }






}
728x90