백준 - 블랙잭 ( 2798, JAVA )

changi123·2024년 12월 14일
0
post-thumbnail

BruteForce ( https://www.acmicpc.net/problem/2798 )

풀이

  • 세장의 카드를 고르기 때문에 각 반복문의 고르는 조건을 고려하면 되는 문제
  • 지금 코드처럼 정렬을 하고 고르면 훨씬 더 빨리 찾을거라고 생각했는데 정렬을 하지 않고 해도 비슷한 시간이 걸렸다. 조건에 유의하자
package problem_solving.bruteForce;

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class BaekJoon_2798 {

	public static void main(String[] args) throws Exception{
		Scanner sc = new Scanner(System.in);
		int n = Integer.parseInt(sc.next());
		int m = Integer.parseInt(sc.next());
		
		Integer [] arr = new Integer[n];
		
		for(int i= 0 ; i < arr.length ; i++ ) {
			arr[i] = Integer.parseInt(sc.next());
		}
		
		Arrays.sort(arr, Collections.reverseOrder());
		int answer = 0 ; 
		mainFor:for(int i= 0; i < arr.length-2;i++) {
			for(int j = i+1 ; j < arr.length-1 ; j++) {
				for(int k = j+1 ; k < arr.length; k ++ ) {
					if( arr[i]+arr[j]+arr[k] ==  m ) {
						answer = arr[i]+arr[j]+arr[k];
						break mainFor ; 
					}
					
					if( answer < arr[i]+arr[j]+arr[k] && arr[i]+arr[j]+arr[k] <m ) {
						answer = arr[i]+arr[j]+arr[k] ; 
					}
				}
			}
			
		}
		System.out.println(answer);
		

	}

}


profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보