Jun's Development Journey

[Permutation] nPn 구현 본문

Other_Codes

[Permutation] nPn 구현

J_Jayce 2021. 3. 22. 11:18
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {
	static int cnt;
	static void swap(int[] arr,int idx1, int idx2) {
		int tmp = arr[idx1];
		arr[idx1] = arr[idx2];
		arr[idx2] = tmp;
	}
	static void permutation(int[] arr, int st, int len) {
		if(st == len-1) {
			for(int i=0;i<len;i++)
				System.out.print(arr[i]);
			System.out.println();
			cnt++;
			return;
		}
		for(int i=st;i<len;i++) {
			swap(arr,i,st);
			permutation(arr,st+1,len);
			swap(arr,i,st);
		}
	}
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//선언 및 입력
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;

		//순열
		int[] arr = {1,2,3,4};
		permutation(arr,0,arr.length);
		System.out.println(cnt);
	}

}