관리 메뉴

MOMONOTE

(JAVA) 백준 2798 블랙잭 본문

알고리즘, 코딩테스트/(JAVA)백준

(JAVA) 백준 2798 블랙잭

momo0503 2021. 6. 24. 10:47

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

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[] arr = new int[N];
       
          StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
        
        
          for(int i=0;i<N;i++){
            arr[i] = Integer.parseInt(st2.nextToken());      
          }
        
        
            int sum =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++){
                        int temp = arr[i]+arr[j]+arr[k];
                        
                      if(temp<=M && temp>sum){                       
                            sum = temp;        
                      }//if  
                        
                        
                    }
                }
            }
        
        System.out.println(sum);
        

    }
}

 

 

- 브루트 포스 알고리즘은 해가 존재할 것으로 예상되는 모든 영역을 전체 탐색하는 방법이다. (완전 탐색)

- 모든 경우의 수를 대입해가며 조건에 만족하는 값만을 찾아낼 수 있어 정확도가 100% 라고 할 수 있다.

 

풀이

- N 과 M을 입력받고 N크기의 배열을 생성한다. 

- 배열에 N가지의 정수를 입력받는다. 

- 모든 영역을 전체 탐색하여 조건에 맞게 (3가지 합이 M이하.. 기존 3개의 합크기보다 크면 sum 갱신) sum을 출력한다.

Comments