티스토리 뷰

코딩/자바 백준

백준 2798 블랙잭(JAVA)

박상어 2021. 9. 13. 18:44
728x90

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

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

www.acmicpc.net

 

3개의 카드를 고른다는 점을 잘 활용하여 3중 for문으로 구현하면 쉽게 풀 수 있는 문제입니다.

 

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
import java.util.*;
 
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        int arr[] = new int[N];
        for (int i = 0; i < N; i++) {
            arr[i] = sc.nextInt();
        }
        sc.close();
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < N - 2; i++) {
            int sum = 0;
            for (int j = i + 1; j < N - 1; j++) {
                for (int k = j + 1; k < N; k++) {
                    sum = arr[i] + arr[j] + arr[k];
                    if (sum <= M) {
                        max = Math.max(max, sum);
                    }
                }
            }
        }
        
        System.out.println(max);
    }
}
cs

 

'코딩 > 자바 백준' 카테고리의 다른 글

백준 10867 중복 빼고 정렬하기 (JAVA)  (0) 2021.09.08
백준 2693 N번째 큰 수(JAVA)  (0) 2021.09.08
백준 10845 큐 (JAVA)  (0) 2021.09.03
백준 16435 스네이크버드  (0) 2021.09.02
백준 1439 뒤집기 (JAVA)  (0) 2021.09.02
댓글