Algorithm

[Algorithm] 순열

eivomin 2023. 4. 10. 13:31
순열

 

서로 다른 n개의 원소에서 r개를 중복없이 순서에 상관있게 혹은 나열하는 것을 순열(permutation)이라고 한다.

 

구현
package Algorithm;

import java.util.Arrays;

public class Permutation {
    static int[] arr = {1,2,3};
    static int[] res = new int[3];
    static boolean[] visited = new boolean[3];
    public static void main(String[] args) {
        perm(0);
    }

    private static void perm(int idx){
        if(idx == arr.length){
            System.out.println(Arrays.toString(res));
            return;
        }

        for(int i=0; i<arr.length; i++){
            if(!visited[i]){
                visited[i] = true;
                res[idx] = arr[i];
                perm(idx+1);
                visited[i] = false;
            }
        }
    }
}

 

결과

 

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]