본문 바로가기
알고리즘/백준

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

by pandastic 2024. 4. 24.
반응형

2798번 문제(1)
2798번 문제(2)

 

 

나름대로 손코딩을 해본 뒤에 풀었으나, 틀렸습니다가 떴다.. check와 sum을 비교해야된다는 건 알았는데 어떻게 비교를 해야되는지 잘 모르겠어서 한참 고민하다가 다른 분의 코드를 참고했다...

 

이 분의 쓰신 글을 참고했다..

 

https://velog.io/@gayeong39/%EB%B0%B1%EC%A4%80-2798-%EB%B8%94%EB%9E%99%EC%9E%AD

 

백준 2798 블랙잭 [JAVA]

문제가 요구하는 바는 간단하다.콘솔로 부터 첫째줄에는 카드 개수(N)과 기준이 되는 수(M : 이 값을 기준으로 가까운 3개의 숫자를 입력받아아함)를 입력받는다.둘째 줄에서는 입력받은 카드의

velog.io

 

1. Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){
    
    Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int M = sc.nextInt();
    int[] list = new int[N];
    int sum = 0;
    int check = 0;

    for(int i=0; i<N; i++){
        list[i] = sc.nextInt();
    }
    for(int i=0; i<N-2; i++){
        for(int j=1+i; j<N-1; j++){
            for(int k=1+j; k<N; k++){
                sum = list[i] + list[j] + list[k];
                if(check < sum && sum <= M){
                    check = sum;
                }
            }
        }
    }
    System.out.println(check);
    sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

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

public class Main{
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[] list = new int[N];
    int sum = 0;
    int check = 0;

    st = new StringTokenizer(br.readLine(), " ");
    for(int i=0; i<N; i++){
        list[i] = Integer.parseInt(st.nextToken());
    }
    for(int i=0; i<N-2; i++){
        for(int j=1+i; j<N-1; j++){
            for(int k=1+j; k<N; k++){
                sum = list[i] + list[j] + list[k];
                if(check < sum && sum <= M){
                    check = sum;
                }
            }
        }
    }
    System.out.println(check);
    br.close();
    }
}

스스로 해결할 때마다 점점 실력이 늘고 있는 거 같다고 생각했는데 그건 내 착각이었던 것 같다...

그래도 꾸준히 하다보면 잘 할 수 있게 되리라 믿는다...!

반응형