티스토리 뷰

//알고리즘

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함