Completion over Perfection

백준 2798 - 블랙잭 (JAVA 자바) 본문

앨고리듬 알고리즘

백준 2798 - 블랙잭 (JAVA 자바)

난차차 2020. 11. 17. 00:46
반응형

백준 2798 - 블랙잭 (JAVA 자바)

www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있

www.acmicpc.net

 

주어지는 숫자에 최대한 가깝게 조합을 하고, 

그 숫자를 출력하는 문제입니다. 

 

풀이법은 그냥 하나씩 다 대입해보면 됩니다. 

for문 3번 돌렸고, 제가 짠 코드를 제가봐도 그렇게 효율적인 코드는 아닌것 같아요.

돌아가면 되는것 아니겠습니까 허허허~

 

 

 

 

 

 

 

 

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
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
 
public class Main {
 
    static int n, m;
    static int list[];
    
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        
        n = sc.nextInt();
        m = sc.nextInt();
        
        list = new int[n+1];
        
        for (int i=0; i<n; i++) {
            list[i] = sc.nextInt();
        }
        
        int minus = 0;
        int max = m;
        int min = 100000;
        for (int i=0; i<n; i++) { // 0
            for (int j=i+1; j<n; j++) { // 1
                for (int k=j+1; k<n; k++) { // 2
                    if (list[i]+list[j]+list[k]<=m) {
                        minus = m - (list[i]+list[j]+list[k]); // 21 - 21 = 0
                        min = Math.min(min, minus);
                    }
                }
            }
        }
        
        
        System.out.println(max-min);
        
        
 
    }
 
}
 
cs
반응형
Comments