티스토리 뷰
//알고리즘
1. 순열
-> 인영이가 낼 수 있는 경우를 모두 구한다음 규영이와 비교
import java.util.Scanner;
public class 규영이와인영이의카드게임 {
static int T, A[], B[], arr[], win, lose;
static boolean[] v;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
A = new int[9]; // 규영이
B = new int[9]; // 인영이
arr = new int[9];
v = new boolean[9];
win = 0;
lose = 0;
for (int i = 0; i < 9; i++) {
A[i] = sc.nextInt();
}
int index = 0;
L: for (int i = 1; i <= 18; i++) {
for (int j = 0; j < 9; j++) {
if (i == A[j])
continue L;
}
B[index++] = i;
}
// 구현
Permutation(0);
System.out.printf("#%d %d %d\n", tc, win, lose);
}
}
private static void Permutation(int idx) {
if (idx == 9) {
int a = 0; // 규영
int b = 0; // 인영
for (int i = 0; i < 9; i++) {
if (A[i] > arr[i]) {
a += A[i] + arr[i];
} else {
b += A[i] + arr[i];
}
}
if (a == b)
return;
if (a > b) {
win++;
} else {
lose++;
}
return;
}
for (int i = 0; i < 9; i++) {
if (v[i])
continue;
v[i] = true;
arr[idx] = B[i];
Permutation(idx + 1);
v[i] = false;
}
}
}
'Algorithm' 카테고리의 다른 글
SW Expert Academy_햄스터 (0) | 2020.12.04 |
---|---|
SW Expert Academy_최솟값으로 이동하기 (0) | 2020.12.03 |
SW Expert Academy_방향 전환 (0) | 2020.12.01 |
SW Expert Academy_보급로_다익스트라 (0) | 2020.11.22 |
SW Expert Academy_벽돌깨기 (0) | 2020.11.21 |