Lewis's Tech Keep

[백준] N과 M 본문

Java/알고리즘

[백준] N과 M

Lewis Seo 2021. 3. 7. 02:42

참고 : www.acmicpc.net/problem/15649

 

- 백트래킹 기본 문제

- 따라가면서 이게 왜 백트래킹이 되는 지 왜 재귀가 필요한 지 이해함.

 

더보기
import java.util.Scanner;
public class Main{
    private static int n, m;
    private static int[] arr = new int[10];
    private static boolean[] isused = new boolean[10];
    private static void backtracking(int  k) {
        if(k == m) {
            for (int i = 0; i < m; i++) {
                System.out.print(arr[i] + " ");
            }
            System.out.print("");
            return;
        }
        for (int i = 1; i <= n; i++) {
            if(!isused[i]) {
                arr[k] = i;
                isused[i] = true;
                backtracking(k+1);
                isused[i] = false;
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();
        backtracking(0);

    }
    
}

'Java > 알고리즘' 카테고리의 다른 글

[백준] 부분수열의 합  (0) 2021.03.07
[백준] N-Queen  (0) 2021.03.07
[백준] 1로 만들기 -2  (0) 2021.03.06
[백준] 구간 합 구하기 4  (0) 2021.03.06
[백준] RGB 거리  (0) 2021.03.06
Comments