알고리즘/백준

백준 알고리즘2798_블랙잭

래울 2020. 5. 28. 02:50

문제원본 : https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 ��

www.acmicpc.net

 

- temp는 세장의 카드의 임시합을 저장

- min은 'M-세장의 카드의 숫자의 합'을 저장

- i, i+j, i+j+k번째의 카드를 골라 모든 경우의 합을 계산

 

#include <stdio.h>
int main(){
	int N,M;
	scanf("%d",&N);
	scanf("%d",&M);
	
	int arr[N]; //VLA 방식 
	int min = M;
	int temp=0;
	int i,j,k;
	for(i=0; i<N; i++){
		scanf("%d", &arr[i]);
	}
	
	for(i=0; i<N; i++){
		for(j=1; i+j<N; j++){
			for(k=1; i+j+k<N; k++){
				temp = M -(arr[i]+arr[i+j]+arr[i+j+k]);
				if(temp < 0)
					continue;
				else if(temp < min)
					min=temp;
			}
		}
	}
	
	printf("%d",M-min);
}