반응형
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Permutation {
static ArrayList<Integer> list = new ArrayList<Integer>();
static ArrayList<Integer> num = new ArrayList<Integer>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("어떤 수를 변환하시겠습니까? :");
findSmall(sc.nextInt());
Integer[] arr = num.toArray(new Integer[0]);
perm(arr, 0, arr.length, arr.length);
Collections.sort(list);
System.out.println(list);
}
public static void perm(Integer[] arr, int depth, int n, int r) {
if (depth == r) {
String temp = new String();
if(arr[0] == 0)
return;
for (int i:arr)
temp += i;
if (!list.contains(Integer.parseInt(temp))) {
list.add(Integer.parseInt(temp));
}
return;
}
for (int i = depth; i < n; i++) {
swap(arr, i, depth);
perm(arr, depth + 1, n, r);
swap(arr, i, depth);
}
}
private static void swap(Integer[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
static void findSmall(int val){
while(val>0) {
num.add(val%10);
val /= 10;
}
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA] 팩토리얼 재귀함수 (0) | 2022.07.13 |
---|---|
[JAVA] 이진탐색 재귀함수 구현 (0) | 2022.07.13 |
[JAVA] baby-gin (0) | 2022.07.11 |
[JAVA] 정돈된 수 출력 (0) | 2022.07.11 |
[JAVA] 입력받은수 가장 작은 수로 변환 (0) | 2022.07.11 |