Development Palette
[D3] n6808_규영이와인영이의카드게임 본문
package com.ssafyalgo.w0812.n6808_규영이와인영이의카드게임;
// 비트마스킹..1
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Solution {
static final int Pick = 9; // 인영이가 카드를 내는 경우의 수 : 9!
static int [] results;
static int winCnt = 0;
static int loseCnt = 0;
static int win = 0;
static int lose= 0;
//static boolean [] isSelected;
private static void permutation(int cnt, int flag, int [] arr, ArrayList<Integer> kyu) {
//한 라운드 종료
if(cnt == Pick) { //cnt == R일 때는 한가지 경우 완성// 9라운드 종료
//System.out.println(Arrays.toString(results));
for(int k=0;k<Pick;k++) {
//규영 win
if(results[k] <kyu.get(k)) winCnt += (results[k] +kyu.get(k));
//인영 win
else if(results[k] >kyu.get(k)) loseCnt += (results[k] +kyu.get(k));
}
if(winCnt>loseCnt) win++;
else if(winCnt<loseCnt) lose++;
winCnt = 0;
loseCnt=0;
return;
}
for(int i=0; i<Pick; i++) {
if((flag & 1<<i ) !=0) continue; //사용했던 카드면 패스
//인영이가 내는 카드
results[cnt] = arr[i];
//isSelected[i] = true;
permutation(cnt+1, flag | 1<<i,arr,kyu);
//isSelected[i] = false;
}
}
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream("src\\com\\ssafyalgo\\w0812\\n6808_규영이와인영이의카드게임\\s_input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for(int t=1;t<=T; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
ArrayList <Integer> kyu = new ArrayList<>();
int iny [] = new int [Pick];
for(int i=0;i<Pick; i++) {
int k = Integer.parseInt(st.nextToken());
kyu.add(k);
}
int count =0;
for(int i=1; i<=Pick*2; i++) {
if(!kyu.contains(i)) iny[count++] = i;
}
//isSelected = new boolean[P];
results = new int[Pick];
win = 0; //이전 테스트 초기화
lose= 0;
permutation(0,0,iny,kyu);
bw.append("#" + t +" "+ win +" "+ lose + "\n");
}
bw.close();
}
}
'Algorithm > SWEA' 카테고리의 다른 글
n3289_서로소 (0) | 2021.08.24 |
---|---|
[D4] n1223_계산기2 (0) | 2021.08.20 |
[D3] n9229 한빈이와 Spot Mart; (0) | 2021.08.10 |
[D3] n3499_퍼펙트셔플 (0) | 2021.08.06 |
[D4] n1218_괄호짝짓기 (0) | 2021.08.05 |
Comments