Mini
3040번: 백설 공주와 일곱 난쟁이 본문
https://www.acmicpc.net/problem/3040
3040번: 백설 공주와 일곱 난쟁이
매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.
www.acmicpc.net
9C7로 조합생성
if(완성)
if(합==100) answer에 깊은복사
return
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main_3040_유동훈 {
static int[] result;
static int[] arr;
static int r;
static int[] answer;
static boolean first=true;
static void print()
{
for(int i=0;i<result.length;++i)
{
System.out.print(result[i]+" ");
}
System.out.println();
}
static void copy_arr()
{
for(int i=0; i<answer.length;++i)
{
answer[i]=result[i];
}
}
/*
* r : nCr의 r, r만큼 result배열 생성해라.
*
*
*/
static void comb(int cnt, int start)
{
//result= new int[result.length][2];
r=result.length;
if(cnt==r)
{
//print();
int sum=0;
for(int i=0; i<result.length;++i)
{
sum=sum+result[i];
}
if(sum==100)
{
copy_arr();
//first=false;
}
return;
}
for(int i=start;i<arr.length;++i)
{
result[cnt]=arr[i];
comb(cnt+1,i+1);
}
}
public static void main(String[] args) throws IOException {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
//StringTokenizer st;
arr=new int[9];
for(int i=0; i<arr.length;++i)
{
arr[i]=Integer.parseInt(br.readLine());
}
//입력 끝
result=new int[7];
answer=new int[7];
comb(0,0);
StringBuilder sb= new StringBuilder();
for(int i=0; i<answer.length;++i)
{
sb.append(answer[i]+"\n");
}
System.out.println(sb);
}
}
'Algorithm > boj' 카테고리의 다른 글
11286번: 절대값 힙 (0) | 2022.08.12 |
---|---|
2961번 : 도영이가 만든 맛있는 음식 (0) | 2022.08.11 |
16926번: 배열돌리기1 (0) | 2022.08.10 |
2563번 : 색종이 (0) | 2022.08.09 |
요세푸스 문제 (0) | 2022.08.08 |