기몽수
코딩 기록일지
기몽수
전체 방문자
오늘
어제
  • 분류 전체보기 (443)
    • 알고리즘 - SWEA (210)
      • D1 (19)
      • D2 (25)
      • D3 (143)
      • D4 (21)
      • D5 (2)
    • 알고리즘 - Programmers (74)
      • Unrated (34)
      • Lv 0 (4)
      • Lv 1 (3)
      • Lv 2 (32)
      • Lv 3 (1)
    • 알고리즘 - Baekjoon (158)
      • Bronze (1)
      • Silver (65)
      • Gold (90)
      • Platinum (2)
    • 취업 (0)
    • SSAFY (1)
hELLO · Designed By 김용수.
기몽수

코딩 기록일지

알고리즘 - SWEA/D3

[SW expert Academy] SWEA 6808번 규영이와 인영이의 카드게임 자바(Java)

2023. 10. 31. 12:52

[D3] 규영이와 인영이의 카드게임 - 6808

문제 링크

성능 요약

메모리: 23,632 KB, 시간: 2,850 ms, 코드길이: 1,540 Bytes

제출 일자

2023-10-31 12:50

출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do

import java.util.Scanner;
class Solution
{
    static int[] a;
    static int[] b;
    static int[] arr;
    static boolean[] visit;
    static int win;
    static int lose;
	public static void main(String args[]) throws Exception {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for(int tc = 1; tc <= T; tc++)
		{
            a = new int[9];
            b = new int[9];
            arr = new int[9];
            visit = new boolean[9];
            win = 0; lose = 0;
            boolean[] check = new boolean[19];
            for(int i = 0; i < 9; i++){
                a[i] = sc.nextInt();
                check[a[i]] = true;
            }
            for(int i = 1,j=0; i <check.length; i++){
                if(!check[i]) b[j++] = i ;
            }
            go(0);
            System.out.println("#" + tc + " " + win + " " + lose);
		}
	}
    
    private static void go(int depth){
        if(depth == 9){
            int count = 0;
            for(int i = 0; i < 9; i++){
                int sum = a[i] + arr[i];
                if(a[i] < arr[i]){
                    count += sum;
                }else{
                    count -= sum;
                }
            }
            if(count > 0){ lose ++; }
            else if(count < 0){ win++;}
            return;
        }
        
        for(int i = 0; i < 9; i++){
            if(!visit[i]){
                visit[i] = true;
                arr[depth] = b[i];
                go(depth+1);
                visit[i] = false;
            }
        }
    }
}

'알고리즘 - SWEA > D3' 카테고리의 다른 글

[SW expert Academy] SWEA 3975번 승률 비교하기 자바(Java)  (0) 2023.10.31
[SW expert Academy] SWEA 5431번 민석이의 과제 체크하기 자바(Java)  (0) 2023.10.31
[SW expert Academy] SWEA 1230번 암호문3 자바(Java)  (1) 2023.10.31
[SW expert Academy] SWEA 5688번 세제곱근을 찾아라 자바(Java)  (0) 2023.10.31
[SW expert Academy] SWEA 3408번 세가지 합 구하기 자바(Java)  (0) 2023.10.31
    '알고리즘 - SWEA/D3' 카테고리의 다른 글
    • [SW expert Academy] SWEA 3975번 승률 비교하기 자바(Java)
    • [SW expert Academy] SWEA 5431번 민석이의 과제 체크하기 자바(Java)
    • [SW expert Academy] SWEA 1230번 암호문3 자바(Java)
    • [SW expert Academy] SWEA 5688번 세제곱근을 찾아라 자바(Java)
    기몽수
    기몽수

    티스토리툴바