반응형
백준에 n과 m 시리즈의 백트레킹과 동일한 방법으로 풀었습니다.
import java.util.*;
public class Main {
// 난쟁이들의 키
static int[] height = new int[9];
// 임시로 난장이들의 키를 담기 위한 배열
static int[] num = new int[7];
static boolean[] visited = new boolean[9];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(int i=0; i<9; i++) height[i] = sc.nextInt();
bt(0, 0);
}
static void bt(int depth, int start){
// 7명을 뽑았으면 확인
if(depth == 7){
// 7명의 합이 100이면 출력 후 종료
if (Arrays.stream(num).sum() == 100){
Arrays.sort(num);
for (int i : num) System.out.println(i);
System.exit(0);
}
return;
}
for(int i = start; i<9; i++){
if(!visited[i]){
visited[i] = true;
num[depth] = height[i];
bt(depth+1, i+1);
visited[i] = false;
}
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 2444번 별 찍기 - 7 [ Java ] (0) | 2020.12.21 |
---|---|
백준 10093번 숫자 [ Java ] (0) | 2020.12.21 |
백준 11931번 수 정렬하기4 [ Java ] (0) | 2020.12.21 |
백준 2587번 대표값2 [ Java ] (0) | 2020.12.20 |
백준 2576번 홀수 [ Java ] (0) | 2020.12.20 |