import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
while(true){
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
if(n==0)
break;
int[] num = new int[n];
int[] temp = new int[6];
for(int i=0; i<n; i++){
num[i] = Integer.parseInt(st.nextToken());
}
choose(num, temp, 0, 0);
sb.append('\n');
}
System.out.print(sb);
br.close();
}
private static void choose(int[] num, int[] temp, int num_idx, int temp_idx){
if(temp_idx == 6){
String str = "";
for(int i=0; i<temp.length; i++){
str += temp[i]+" ";
}
sb.append(str).append('\n');
return;
}
if(num_idx >= num.length)
return;
temp[temp_idx] = num[num_idx];
choose(num, temp, num_idx+1, temp_idx+1);
choose(num, temp, num_idx+1, temp_idx);
}
}
주어진 n개의 수 중에서 6개를 중복없이(자기 자신을 포함하지 않고), 순서 상관없이 뽑는 문제이다.
총 가짓수를 nC6으로 표현할 수 있고, 조합으로 구현했다.
** 조합 참고
'1d-1c > BOJ' 카테고리의 다른 글
14888_연산자 끼워넣기 (JAVA) (0) | 2020.11.29 |
---|---|
14501_퇴사 (JAVA) (0) | 2020.11.29 |
11723_집합 (JAVA) (0) | 2020.11.25 |
10972_다음 순열 & 10973_이전 순열 (JAVA) (0) | 2020.11.24 |
9095_1,2,3 더하기 (JAVA) (0) | 2020.11.24 |