BOJ#6603 로또
* 문제
https://www.acmicpc.net/problem/6603
* 풀이
주어진 숫자에서 6개의 숫자를 고르는 문제입니다.
간단히 조합을 돌려서 해결했습니다.
각각의 숫자에 대하여 뽑는 경우, 뽑지 않는 경우로 나누고
잘뽑은 경우에만 출력을 했습니다.
* 나의 코드
https://github.com/stack07142/BOJ/blob/master/BOJ%236603/src/Main.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String inputLine = br.readLine();
if (inputLine.equals("0")) break;
StringTokenizer st = new StringTokenizer(inputLine);
int k = Integer.parseInt(st.nextToken());
int[] S = new int[k];
for (int i = 0; i < k; i++) {
S[i] = Integer.parseInt(st.nextToken());
}
printCombination(k, S, 0, 6, "");
System.out.println();
}
}
static void printCombination(int k, int[] S, int idx, int N, String s) {
if (N == 0) {
System.out.println(s);
} else if (idx >= k) {
return;
} else {
// 뽑는 경우
printCombination(k, S, idx + 1, N - 1, s + S[idx] + " ");
// 뽑지 않는 경우
printCombination(k, S, idx + 1, N, s);
}
}
}
'Algorithm > BruteForce' 카테고리의 다른 글
BOJ#14391 종이 조각 (0) | 2017.09.29 |
---|---|
BOJ#2309 일곱 난쟁이 (0) | 2017.07.05 |