티스토리 뷰

Algorithm

백준_블랙잭_2798

Young_J 2020. 10. 8. 00:35

//알고리즘

1. 조합문제

2. 3장의 카드를 뽑고 3장의 카드의합과 21의 차를 구한 후 가장 0보다 큰 가장큰값을 찾음.

 

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

public class 블랙잭 {
	static int N, M;
	static int[] arr, numbers;
	static int max, ans;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		N = sc.nextInt();
		M = sc.nextInt();
		arr = new int[N];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
		}
		//알고리즘 
		numbers = new int[3]; //3장의 카드를 뽑는다.
		combination(0, 0); //조합
		System.out.println(ans);
		ans=0;

	}

	private static void combination(int idx, int start) {
		if (idx == 3) {
			max = 0;
			for (int i = 0; i < numbers.length; i++) {
				max += numbers[i];
			}
			if (M - max >= 0) { // 나온 경우의 수 합을 구한 후 큰값을 저장
				ans = Math.max(ans, max);
			}
			return;
		}

		for (int i = start; i < arr.length; i++) {
			numbers[idx] = arr[i];
			combination(idx + 1, i + 1);
		}

	}

}

'Algorithm' 카테고리의 다른 글

백준_빵집_3109  (0) 2020.10.11
백준_빙고_2578  (0) 2020.10.09
백준_1로 만들기_1463  (0) 2020.10.07
백준_수 이어가기_2635  (0) 2020.10.06
백준_일곱난쟁이_2309  (0) 2020.10.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함