import java.util.Arrays;
public class 조합_01 {
public static String[] 토핑 = {"상추", "패티", "토마토", "치즈", "새우"};
public static int N = 5;
public static int R = 2; //문제에서 판단 할 수 있는 부분들
public static String[] sel = new String[R]; //내가 선택한 토핑
public static void main(String[] args) {
combination(0, 0);
}
//idx : 토핑의 index
//sidx : sel의 index
public static void combination(int idx, int sidx) {
//기저파트
if(sidx == R) {
System.out.println(Arrays.toString(sel));
return;
}
if(idx == N) return;
//재귀파트
sel[sidx] = 토핑[idx]; //해당 재료 넣어보자.
combination(idx+1, sidx+1); //idx 번째 재료 뽑은거
combination(idx+1, sidx); //idx 번째 재료 안뽑은거
}
}
import java.util.Arrays;
public class 조합_02 {
public static String[] 토핑 = {"상추", "패티", "토마토", "치즈", "새우"};
public static int N = 5;
public static int R = 3; //문제에서 판단 할 수 있는 부분들
public static String[] sel = new String[R]; //내가 선택한 토핑
public static void main(String[] args) {
combination(0, 0);
}
//idx : 토핑의 시작 인덱스
//sidx : sel의 index
public static void combination(int idx, int sidx) {
//기저파트
if(sidx == R) {
System.out.println(Arrays.toString(sel));
return;
}
for(int i = idx; i <= N-R+sidx; i++) {
sel[sidx] = 토핑[i];
combination(i+1, sidx+1);
}
}
}