문제 출처 : https://www.acmicpc.net/problem/3040
문제
설명
백설 공주는 공주가 되기 전에 유명한 수학자였다니ㅋㅋㅋㅋ설명이 재미있는 문제였습니다ㅎㅎ
문제에도 나와 있듯 한 마디로, 아홉 개의 수 중 합이 100이 되는 일곱 개의 수를 찾는 문제이기때문에, 조합으로 비교적 쉽게 풀 수 있는 문제였습니다:)
코드
import java.util.Scanner;
//조합
public class BOJ3040_SnowWhite {
static int[] dwarfs;
static int[] result;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
dwarfs = new int[9];
result = new int[7];
for(int i=0; i<9; i++)
dwarfs[i] = sc.nextInt();
comb(0, 0);
}
private static void comb(int cnt, int start) {
if(cnt==7) { //다 뽑았다면
int sum=0;
for(int i=0; i<7; i++) {
sum+=result[i];
}
if(sum==100) {
for(int i=0; i<7; i++)
System.out.println(result[i]);
}
return;
}
for(int i=start; i<9; i++) {
result[cnt] = dwarfs[i];
comb(cnt+1, i+1);
}
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[BOJ][JAVA] 2839 - 설탕 배달 (0) | 2021.08.26 |
---|---|
[BOJ][JAVA] 15686 - 치킨 배달 (0) | 2021.08.25 |
[BOJ][JAVA]2493 - 탑 (0) | 2021.08.20 |
[BOJ][JAVA]17478번 - 재귀함수가 뭔가요? (0) | 2021.08.16 |
[BOJ][JAVA]1244 - 스위치 켜고 끄기 (0) | 2021.08.15 |