자바 중복없는 순열 출력하기


자바 중복없는 순열 출력하기

중복없는 순열을 출력하는 알고리즘이다. 두 수 m과 n이 주어질 때 1부터 m까지의 수 중 n개를 뽑을 수 있는 경우의 수를 따지는 것이다. 예를들면 3 1 일 때는 1, 2, 3이고 4 2 일 때는 1 2, 1 3, 1 4, 2 1, 2 3, ..., 4 3 이 된다. 이는 아래처럼 재귀적으로 구현해야 한다. public static void solve(int pos) { if (pos == n) { for (int i = 0; i < n; i++) System.out.print(arr[i] + " "); System.out.println(); return; } else { for (int i = 0; i < m; i++) if (visit[i] == 0) { arr[pos] = i + 1; visit[i] = 1; solve(pos + 1); arr[pos] = 0; visit[i] = 0; } } } m과 n, 출력할 배열 arr과 방문여부인 visit은 모두 전역으로 선언했다...


#순열 #자바 #재귀 #출력

원문링크 : 자바 중복없는 순열 출력하기