백준 15651 N과 M(3) JAVA

sundays·2024년 6월 16일
0

문제

N과 M (3)

풀이

1-n가지의 자연수를 m개씩 뽑는 경우의 수를 전부 출력하면 된다
백트래킹 문제중에선 굉장히 유명하고 연습하기 좋은 문제같다.

백트래킹은 반복문과 멈추는 조건을 정의를 먼저 해야한다.
멈추는 조건은 3개까지 모두 뽑혔을때 멈추면 된다. 그리고 1-n의 숫자를 사용하는 경우의 수기 때문에 1-n까지 반복해야한다.

private static int dfs(int depth, int m) {
	// m개를 모두 고름
    if (depth == m) {
    	for (int x : arr) {
        	sb.append(x).append(" ");
        }
        sb.append("\n");
        return;
    }
   
    // 1- N 의 숫자를 모두 쓰는 경우의 수
    for (int i = 1; i <= n; i++) {
    	arr[depth] = i;
    	dfs(depth + 1, m);
    }
}

전체 코드

전체 코드

profile
develop life

0개의 댓글