https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgv9va6HnkDFAW0 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


접근 방법

DFS 방식으로 풀었다. 문제에서 주어진 규영이의 덱과 비교해 인영이의 덱을 채웠다.

규영이의 덱은 고정이기 때문에 인영이의 덱을 반복하며 방문 체크해야겠다고 생각했다.

규영이의 덱이 끝에 도달했을 때, 합산 점수를 기반으로 카운팅 했다. 

 

소스 코드

import java.util.*;
import java.io.*;
 
class Solution {
    static ArrayList<Integer> a, b;
    static int[] ck;
    static int win, lose;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        for(int t=1; t<=T; t++) {
            a = new ArrayList<>();
            b = new ArrayList<>();
            ck = new int[9];
            win = 0; lose = 0;
         
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            for(int i=1; i<=9; i++)
                a.add(Integer.parseInt(st.nextToken()));
            for(int i=1; i<=18; i++) {
                if(!a.contains(i))
                    b.add(i);
            }
            dfs(0, 0, 0);
            sb.append("#" + t + " " + win + " " + lose + "\n");
        }
        System.out.println(sb.toString());
    }
    static void dfs(int aa, int as, int bs) {
        if(aa == a.size()) {
            if(as > bs) win += 1;
            else if(as < bs) lose += 1;
        }
         
        for(int i=0; i<9; i++) {
            if(ck[i] == 0) {
                int x = a.get(aa);
                int y = b.get(i);
                 
                ck[i] = 1;
                 
                if(x>y)
                    dfs(aa+1, as+(x+y), bs);
                else if(x<y)
                    dfs(aa+1, as, bs+(x+y));
                 
                ck[i] = 0;
            }
        }
    }
}

'코테 > 자바' 카테고리의 다른 글

[SWEA] 13428. 숫자 조작  (0) 2023.05.21
[SWEA] 6190. 정곤이의 단조 증가하는 수  (0) 2023.05.21
[SWEA] 1225. 암호생성  (0) 2023.05.21
[SWEA] 4698. 테네스의 특별한 소수  (0) 2023.05.18
[BOJ] 11725. 트리의 부모 찾기  (0) 2023.05.18