smooth waters run deep

1d-1c/BOJ

2798_블랙잭 (JAVA)

yeon_11 2020. 10. 3. 23:52
 

2798번: 블랙잭

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

www.acmicpc.net

import java.util.Arrays;
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[] card = new int[N];

		for(int i=0; i<N; i++){
			card[i] = sc.nextInt();
		}

		int max_temp=0; int ans = 0; int temp=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++){
					if(i!=j && j!=k && i!=k){
						temp = card[i]+card[j]+card[k];
						if(temp<M){
							max_temp = Math.max(temp, max_temp);
							ans = max_temp;
						}
					}

				}
			}
		}
		System.out.println(ans);

	}
}

틀렸습니다 가 계속 떠서ㅜㅜ 질문게시판에서 블랙잭 필독글을 읽고 수정했더니 통과!

 

** 필독글 - "시간초과 신경 안써도 됩니다. 그냥 구현하세요. 묘기 부리지 마세요."

 

내 코드에서 틀린 부분은, temp==M인 경우에 break를 걸었는데!

이렇게 되면 확인못하는 경우가 생겨서 안된다고 한다..

( temp==M인 경우가 나오면 다른거 확인할 필요 없이 무조건 답은 M이 되는데.. 왜 이게 틀린건지 모르겠다ㅠㅠ )

 

 

 

'1d-1c > BOJ' 카테고리의 다른 글

2839_설탕 배달 (JAVA)  (0) 2020.10.04
1712_손익분기점 (JAVA)  (0) 2020.10.04
11729_하노이 탑 이동 순서 (JAVA)  (0) 2020.10.02
10815_숫자 카드 (JAVA)  (0) 2020.09.18
2805_나무 자르기 (JAVA) (C++)  (0) 2020.09.18