-
반응형
블랙잭
2798번: 블랙잭
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 ��
www.acmicpc.net
풀이
dp로 풀까 생각하다가, 고려할 사항이 많아질 것 같아서 모든 경우에 따라 최대 값을 구하기로 했다.
앞에서 부터 3장의 카드를 고르고, 해당 숫자가 m 이하일 경우에 최대 값을 갱신해줬다.
3중 포문은 돌리기 싫었지만, 좋은 방법이 떠오르지 않았다.. ㅠㅠ
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BlackJack_2798 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int[] cardArr = new int[Integer.parseInt(st.nextToken())]; int m = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); for(int i=0; i<cardArr.length; i++) { cardArr[i] = Integer.parseInt(st.nextToken()); } System.out.println(solution(cardArr, m)); br.close(); } private static int solution(int[] cardArr, int m) { int answer =0; for(int i=0; i<cardArr.length-2; i++) { for(int j=i+1; j<cardArr.length-1; j++) { for(int k=j+1; k<cardArr.length; k++) { int sum =cardArr[i] + cardArr[j] + cardArr[k]; if(sum <= m) { answer = Math.max(answer, sum); } } } } return answer; } }
반응형'알고리즘 > 백준' 카테고리의 다른 글
BOJ) 상자넣기 (0) 2020.06.23 BOJ) 방 번호 (0) 2020.06.23 BOJ) 연결 요소의 개수 (0) 2020.06.22 BOJ) 치킨 쿠폰 (0) 2020.06.22 BOJ) 욱제는 결정장애야!! (0) 2020.06.18