알고리즘/JA

[솔루션]정올 1810 백설공주

  • -
반응형
import java.util.Arrays;
import java.util.Scanner;

public class Main_1810_백설공주 {

	// TODO: http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1083&sca=50&sfl=wr_hit&stx=1810&sop=and
	static int[] source = new int[9];
	static int[] target = new int[7];

	public static void main(String[] args) {
		Scanner scanner = new Scanner(str);
		for (int i = 0; i < source.length; i++) {
			source[i] = scanner.nextInt();
		}
		nCr(7, 0, 0);
	}

	public static void nCr(int r, int ti, int si) {
		if (r == 0) {	// 7개를 다 고른 경우
			int sum = Arrays.stream(target).sum();
			if (sum == 100) {
				for (int i : target) {
					System.out.println(i);
				}
				return;
			}
		} else {
			if (si == source.length) {	// 다 돌았는데 7개 못채움
				return;
			} else {					// 중간 단계
				target[ti] = source[si];
				nCr(r - 1, ti + 1, si + 1);	// 그 요소를 선택한 상황
				nCr(r, ti, si + 1);		// 그 요소를 선택하지 않은 상황
			}
		}
	}

	static String str = "8\r\n" +
			"6\r\n" +
			"5\r\n" +
			"1\r\n" +
			"37\r\n" +
			"30\r\n" +
			"28\r\n" +
			"22\r\n" +
			"36";
}
반응형

'알고리즘 > JA' 카테고리의 다른 글

1127 : 맛있는 음식(PERKET)  (0) 2019.08.15
1733 : 오목  (0) 2019.08.08
1809 : 탑  (0) 2019.08.08
1681 : 해밀턴 순환회로  (0) 2019.07.28
[솔루션]정올 1169 주사위 던지기 1  (0) 2018.10.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.