코딩테스트/백준

[백준]2798번 블랙잭 - Java

GAEBAL 2022. 3. 19. 22:41
728x90

문제

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

 

1592번: 영식이와 친구들

예제 1의 경우 일단 1번이 공을 잡는다. 1번은 공을 한 번 잡았기 때문에, 공을 3번에게 던진다. 3번은 공을 한 번 잡았기 때문에, 공을 5번에게 던진다. 5번은 2번에게 던지고, 2번은 4번에게 던진다

www.acmicpc.net

 

풀이

얘도 쉬운 문제임!

그냥 완전 탐색으로 첨부터 싹 돌려주면 됨!

그나마 주의할 점은 3중 for문 안에서 인덱싱에 주의해야 된다는 점??

 

코드

// 2798번 블랙잭
// https://www.acmicpc.net/problem/2798

package BAEKJOON;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Num2798_블랙잭 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        int[] arr = new int[N];

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        int sum = 0;
        int answer = 0;
        for (int i = 0; i < N - 2; i++) {
            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 (answer < sum && sum <= M) {
                        answer = sum;
                    }
                }
            }
        }

        System.out.println(answer);
    }
}
728x90