문제
https://www.acmicpc.net/problem/15649
문제 설명
문제 풀이
재귀를 이용한 브루트포스 문제다.
코드
import java.util.*;
class Main {
static boolean[] num = new boolean[9];
static int[] candi = new int[9];
static StringBuilder sb = new StringBuilder();
static void func(int i, int N, int M) {
if(i == M) {
for(int j = 0; j < M; j++) {
sb.append(candi[j]);
if(j != M - 1)
sb.append(" ");
}
sb.append("\n");
return;
}
for(int j = 1; j <= N; j++) {
if(!num[j]) {
num[j] = true;
candi[i] = j;
func(i + 1, N, M);
num[j] = false;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
func(0, N, M);
System.out.println(sb.toString());
}
}
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/백준 알고리즘] 1003 - 피보나치 함수 (자바, Java 풀이) (0) | 2022.10.18 |
---|---|
[코딩테스트/백준 알고리즘] 8985 - OX퀴즈 (자바, Java 풀이) (0) | 2022.09.28 |
[코딩테스트/백준 알고리즘] 1107번 : 리모컨 (자바, Java 풀이) (0) | 2022.09.04 |
[코딩테스트/백준 알고리즘] 1476번 : 날짜 계산 (자바, Java 풀이) (0) | 2022.09.03 |
[코딩테스트/백준 알고리즘] 3085번 : 사탕 게임 (자바, Java 풀이) (0) | 2022.09.03 |
댓글