728x90
피자 가게에서 6가지의 토핑을 고를 수 있습니다.
1. 새우 2. 버섯 3. 파인애플 4. 베이컨 5. 페퍼로니 6. 옥수수콘
이 중에서 n개의 토핑을 선택해 피자에 올릴 것입니다.
1. 순열 -> 토핑을 올리는 순서가 중요합니다.
package 순조부;
import java.util.Arrays;
// 피자 토핑 만들기 문제
// 1. 새우 2. 버섯 3. 파인애플 4. 베이컨 5. 페퍼로니 6. 옥수수콘
public class 내가만드는문제_일반순열{
static int totalCnt; //완성된 순열의 수
static int n;//토핑 개수 선택
static int[] results;//순열 결과를 저장할 배열
static boolean[] isSelected;
static String[] toppings = {"", "새우", "버섯", "파인애플", "베이컨", "페퍼로니", "옥수수콘"};
public static void main(String[] args) {
n=2; //2개 토핑 선택
results=new int[n];
isSelected=new boolean[7];
피자토핑올리기(0);
System.out.println(totalCnt);
}
//피자토핑올리기-일반순열(순서 o, 중복 x)
public static void 피자토핑올리기(int cnt) {//cnt는 판의 횟수
if(cnt==n) {// n개의 토핑 선택시 출력
totalCnt++;
System.out.println(Arrays.toString(토핑변환(results)));
return;
}
for (int i = 1; i <= 6; i++) {
if(isSelected[i]) continue;
results[cnt]=i;
isSelected[i]=true;
피자토핑올리기(cnt+1);
isSelected[i]=false;
}
}
public static String[] 토핑변환(int[] arr) {
String[] stringArr = new String[arr.length];
for(int i = 0; i < arr.length; i++) {
stringArr[i]=toppings[arr[i]];
}
return stringArr;
}
}
2. 조합 -> 토핑을 올리는 순서가 별로 중요하지 않습니다.
package 순조부;
import java.util.Arrays;
public class 내가만드는문제_일반조합 {
static int totalCnt; // 완성된 조합의 수
static int n;
static int[] results;// 조합 결과를 저장할 배열
static String[] toppings = {"", "새우", "버섯", "파인애플", "베이컨", "페퍼로니", "옥수수콘"};
public static void main(String[] args) {
n = 2;
results = new int[n];
피자토핑올리기(0, 1);
System.out.println(totalCnt);
}
public static void 피자토핑올리기(int cnt, int start) {// 일반조합(순서 x,중복 x)
if (cnt == n) {
totalCnt++; //최종 15
System.out.println(Arrays.toString(토핑변환(results)));
return;
}
for (int i = start; i <= 6; i++) {
results[cnt] = i;
피자토핑올리기(cnt + 1, i + 1);
}
}
public static String[] 토핑변환(int[] arr) {
String[] stringArr = new String[arr.length];
for(int i = 0; i < arr.length; i++) {
stringArr[i]=toppings[arr[i]];
}
return stringArr;
}
}
728x90
'💡 URECA' 카테고리의 다른 글
[URECA] Day17 | 순두부가 아닌 순(열) 조(합) 부(분집합) (0) | 2025.02.18 |
---|---|
[URECA] Day 16 | 알고리즘 (0) | 2025.02.17 |
[URECA] DAY15 자바 (1) | 2025.02.14 |
[URECA] DAY14 | 자바(5) 재귀 (0) | 2025.02.13 |
[URECA] Day 13 | 자바(5) | 컬렉션 API(ArrayList, HashSet, TreeSet, HashMap) 재귀 (0) | 2025.02.12 |