https://www.acmicpc.net/problem/10974
이 문제는 모든 순열을 출력하는 문제다. 원소가 1부터 증가하는 정수이기 때문에 배열 말고 for문을 이용하였다.
import java.util.*;
public class Main {
public static void pick(int a[], int m, int toPick) {
if(toPick==0) {
for(int i=0; i<m; i++)
System.out.print(a[i]+" ");
System.out.println();
return ;
}
int lastIndex = m-toPick-1;
for(int i = 1; i<=m; i++)
{
boolean f = false;
for(int j=0; j<=lastIndex; j++)
if(a[j]==i)
f=true;
if(f) continue;
a[lastIndex+1] = i;
pick(a, m, toPick-1);
}
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
pick(a, n, n);
}
}
'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글
백준 6603: 로또(JAVA) (0) | 2022.11.30 |
---|---|
백준 1182: 부분수열의 합 (1) | 2022.11.17 |
백준 10973: 이전 순열(JAVA) (0) | 2022.10.12 |
백준 10972: 다음 순열(JAVA) (0) | 2022.10.12 |
백준 9095번: 1, 2, 3 더하기 (0) | 2022.10.03 |