알고리즘/swea

6808. 규영이와 인영이의 카드게임

베리영young 2024. 7. 7. 23:22

사용 알고리즘: dfs

사용 언어: java

 

package swea;

import java.io.*;
import java.util.*;

public class Solution_swea_6808_규영이와인영이의카드게임 {

	static int win, lose;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int testcase = sc.nextInt();
		
		for (int t = 1; t < testcase+1; t++) {
			boolean[] 인영 = new boolean[19];
			Arrays.fill(인영, true);
			인영[0] = false;
			
			win =0; lose =0;
			int[] 규영 = new int[9];
			for(int i=0; i<9; i++) {
				규영[i] = sc.nextInt();
				인영[규영[i]] = false;
			}
			
			dfs(인영, 규영, 0, 0, 0); //카드 / 인영점수 규영 점수
			
			System.out.println("#"+t+" "+lose+" "+win);
		}
		
	}

	private static void dfs(boolean[] 인영, int[] 규영, int 인영score, int 규영score, int round) {
		if(round == 9) {
			if(인영score > 규영score) win++;
			else if(인영score < 규영score) lose++;
			return;
		}
		
		for(int i=1; i<=18; i++) {
			if( 인영[i] ) {
				인영[i] = false;
				int winnerGetScore = 규영[round] + i;
				if(규영[round] > i) {
					dfs(인영, 규영, 인영score, 규영score + winnerGetScore, round+1);
				} else {
					dfs(인영, 규영, 인영score + winnerGetScore, 규영score, round+1);
				}
				인영[i] = true;
			}
		}
		
	}

}

 

작년 이 맘때만 해도 이런 문제는 못 풀었었는데 성장했구나 코쓱

 

'알고리즘 > swea' 카테고리의 다른 글

7701_염라대왕의 이름 정렬  (0) 2025.01.09
1249_보급로  (0) 2025.01.09
6730. 장애물 경주 난이도  (0) 2024.07.08
8931. 제로  (0) 2024.07.07