사용 알고리즘: 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 |