728x90
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
'알고리즘' 카테고리의 다른 글
[JAVA]백준 5904번: Moo 게임 (0) | 2021.01.02 |
---|---|
[JAVA]백준 1725번: 히스토그램 (0) | 2021.01.02 |
[JAVA]백준 4779번: 칸토어 집합 (0) | 2020.12.28 |
[JAVA]백준 1037번: 약수 (0) | 2020.12.27 |
[JAVA]백준 11866번: 요세푸스 문제 0 (0) | 2020.12.27 |