1 λΆ„ μ†Œμš”

πŸ“ [B2_3040] λ°±μ„€ 곡주와 일곱 λ‚œμŸμ΄

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;



public class Main {
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	static int[] arr;
	// 7개 뽑기
	static int[] num;

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		// 일곱 λ‚œμŸμ΄ λ°°μ—΄
		arr = new int[9];
		num = new int[7];

		// μž…λ ₯
		for (int i = 0; i < arr.length; i++) {
			arr[i] = Integer.parseInt(br.readLine());
		}

		dfs(0, 0);

	}

	// μ‘°ν•©
	static void dfs(int cnt, int start) {
		if (cnt == 7) {
			int sum = 0;
			// sum κ΅¬ν•˜κΈ°
			for (int i = 0; i < num.length; i++) {
				sum += num[i];
			}
			if (sum == 100) {
				for (int i = 0; i < num.length; i++) {
					System.out.println(num[i]);
				}
				return;
			}
			return;
		}

		// λ‹€μŒ 것 λΆ€ν„° 쭈욱
		for (int i = start; i < arr.length; i++) {
			num[cnt] = arr[i];
			dfs(cnt + 1, i + 1);
		}

	}
}

πŸ€” λ‚˜μ˜ 생각

보자마자 μˆœμ„œκ°€ μƒκ΄€μ—†λŠ” 계산이라고 μƒκ°ν•˜μ—¬ μ‘°ν•©μœΌλ‘œ ν’€μ–΄μ£Όμ—ˆλ‹€.
κ·ΈλŸ¬λ‚˜ μ‰½κ²Œ ν•΄κ²°ν•˜μ§€ λͺ»ν•˜μ—¬ ν•œ λ²ˆλ” 쑰합을 느끼게 λ˜λŠ” λ¬Έμ œμ˜€λ‹€.
μˆœμ„œλŒ€λ‘œ λ‚œμŸμ΄λ“€μ˜ 값을 받아와 배열에 μ €μž₯ν•œ λ’€ 7λͺ…이 되면 합을 κ΅¬ν•˜κ³  κ·Έ 합이 100이 λœλ‹€λ©΄ λ°”λ‘œ λ‚œμŸμ΄λ“€μ„ 좜λ ₯, 100이 μ•ˆλœλ‹€λ©΄ λ¦¬ν„΄ν•΄μ£Όμ—ˆλ‹€.