본문 바로가기

Java

dfs 순열 알고리즘

728x90

dfs 순열 알고리즘

public static void permutation(int n,int r) {
    int[] answer = new int[r];
    int[] arr = new int[n];
    for(int i=1; i<=n;i++){
        arr[i-1] = i;
    }
    boolean[] visited = new boolean[n];
    perm(arr,answer,visited,0,n,r);
}

static void perm(int[] arr, int[] output, boolean[] visited, int depth, int n, int r) {
    if (depth == r) {
        System.out.println(Arrays.toString(output));
        return;
    }

    for (int i=0; i<n; i++) {
        if (!visited[i]) {
            visited[i] = true;
            output[depth] = arr[i];
            perm(arr, output, visited, depth + 1, n, r);
            visited[i] = false;
        }
    }
}

n개중에 r개 뽑아 중복없이 사전순으로 출력하는 순열 알고리즘

 

알고리즘

https://school.programmers.co.kr/learn/courses/30/lessons/87946

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://github.com/yougeun6021/Algorithm/blob/master/src/Level2/Fatigability.java

 

GitHub - yougeun6021/Algorithm

Contribute to yougeun6021/Algorithm development by creating an account on GitHub.

github.com

 

728x90

'Java' 카테고리의 다른 글

Sliding Window 알고리즘  (0) 2022.11.23
StringBuilder를 활용한 dfs  (0) 2022.11.21
객체를 원하는 조건에 따라 정렬  (0) 2022.11.13
Iterator 메소드  (0) 2022.11.11
StringBuilder 초기화 하기  (0) 2022.11.09