[백준] 2309: 일곱 난쟁이 JAVA

JinjuLog·2024년 8월 5일
0

코테챌린지

목록 보기
1/1

📌문제탐색하기

문제 탐색

9명의 난쟁이에서 7명의 난쟁이 합이 100이 되는 조건을 구해야함

알고리즘 선택

"가능한 정답이 여러 가지인 경우에는 아무거나 출력한다."에서 브루트포스 알고리즘을 사용해야한다.

📌코드 설계하기

  1. 문제의 Input 9개(0<= Input < 100)를 받는다.
  2. 9개의 입력값에서 7개의 합이 100인 값을 찾는다.
  3. 해당하는 Input값 7개를 오름차순 출력한다.

📌시도 회차 수정사항

1회차

해당하는 Input값 7개 오름차순 부분 추가

2회차

해당하는 Input값 7개를 출력하는 문 수정부분 오류로 추후 수정이 필요하다.

📌최종코드

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	
	private static int[] result;
	private static int[] input;
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		input = new int[9];
		
		for(int i=0; i<input.length; i++) {
			input[i] =sc.nextInt();
		}
		
		solve(-1, 0, 0);
		Arrays.sort(result);
		System.out.println(result.toString());
		
	}

	private static void solve(int idx, int sum, int cnt) {
			if(cnt == 7) {
				if (sum == 100) {
					
				}
				return;
			}
			
			for(int i = idx+1; i<9; i++) {
				sum += input[i];
				solve(i, sum, cnt+1);
				sum -= input[i];
			}
		}

}

0개의 댓글