๋ฐ์ํ
๋ฌธ์
SWEA(SW Expert Academy) 6808๋ฒ- ๊ท์์ด์ ์ธ์์ด์ ์นด๋๊ฒ์ (D3)
ํ์ด
์ ํด์ง ๊ฐ๋ค ์ค, ์ด๋ป๊ฒ ๋ฐฐ์ดํ๋์ง์ ๋ฐ๋ผ ๋๋๋ ์์ด ๋ฌธ์
isSelected์ boolean๋ฐฐ์ด์ ํ์ฉํ์ฌ ํ์ฌ ์ธ์์ด๊ฐ ๋ผ ์ ์๋ ๊ฐ๋ค์ ์์ด์ ๊ตฌํจ
๊ธฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด(์์ด์ ํฌ๊ธฐ๊ฐ R์ด ๋๋ฉด), ๊ท์์ด์ ์ธ์์ด์ ์ ์๋ฅผ ๊ฐ๊ฐ ๊ณ์ฐํด์ ์น๋ถ๋ฅผ ๋๋
์ฝ๋
import java.io.*;
import java.util.*;
public class Solution{
static int N = 18, R = 9;
static int[] gu;
static int[] in;
static int[] rem_card;
static boolean[] isSelected;
static int win;
public static void game(int cnt) {
if (cnt == R) {
int gu_point = 0;
int in_point = 0;
for (int i = 0; i < R; i++) {
if (gu[i] > in[i])
gu_point += (gu[i] + in[i]);
else
in_point += (gu[i] + in[i]);
}
if (gu_point > in_point)
win++;
return;
}
for (int i = 0; i < R; i++) {
if (isSelected[i])
continue;
in[cnt] = rem_card[i];
isSelected[i] = true;
game(cnt + 1);
isSelected[i] = false;
}
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int tc = Integer.parseInt(br.readLine());
for (int T = 1; T <= tc; T++) {
win = 0;
gu = new int[9];
in = new int[9];
isSelected = new boolean[9];
rem_card = new int[9];
int idx = 0;
boolean[] cnt = new boolean[18];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < R; i++) {
gu[i] = Integer.parseInt(st.nextToken());
cnt[gu[i] - 1] = true;
}
for (int i = 0; i < N; i++) {
if (cnt[i])
continue;
else
rem_card[idx++] = i + 1;
}
game(0);
sb.append("#").append(T).append(" ").append(win).append(" ").append(362880 - win).append("\n");
}
System.out.println(sb.toString());
}
}
๋ฐ์ํ
'๐ ์๊ณ ๋ฆฌ์ฆ > BruteForce' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] 4012๋ฒ ์๋ฆฌ์ฌ, [๋ฐฑ์ค] 14889๋ฒ ์คํํธ์ ๋งํฌ (0) | 2021.08.18 |
---|---|
[๋ฐฑ์ค] 2961๋ฒ ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์ (0) | 2021.08.17 |
[๋ฐฑ์ค]17281๋ฒ โพ(์ผ๊ตฌ) (0) | 2021.08.17 |
[๋ฐฑ์ค] 17135๋ฒ ์บ์ฌ๋ํ์ค (java) (0) | 2021.08.13 |
[๋ฐฑ์ค] 15686๋ฒ ์นํจ๋ฐฐ๋ฌ ( java) (0) | 2021.08.13 |