본문 바로가기

백준 문제풀기/JAVA

[백준 2798 JAVA 자바] 블랙잭

 

문제의 제목은 블랙잭인데

문제의 내용은 "새로운 블랙잭" 이네요

 

n개의 카드 중 3개의 카드를 골라

그 합이 m을 넘지 않으면서 m과 최대한 가깝게 만듭시다

 

코드입니다

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		
		int[] arr = new int[n];
		
		for(int i=0;i<n;i++) {
			arr[i] = scan.nextInt();
		}
		
		int max = 0;
		
		for(int i=0;i<=n-3;i++) {
			for(int j=i+1;j<=n-2;j++) {
				for(int k=j+1;k<=n-1;k++) {
					if(arr[i]+arr[j]+arr[k]<=m&&arr[i]+arr[j]+arr[k]>max) {
						max = arr[i]+arr[j]+arr[k];
					}
				}
			}			
		}
		System.out.println(max);
	}
}

 

3중 for문 입니다

3개의 for문과

max를 이용해서

m을 넘지 않는 조합을 찾았습니다