-
[백준 2798번] 블랙잭 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 4. 21:17
BOJ 2798번 문제인 블랙잭을 불어보도록 합시다
개인적으로 블랙잭은 어느정도 짱구를 돌리면 내게 유리하게 만들 수 있는 게임이라 생각되서 좋아하기도 하고 즐겨하는 게임이기도 하다
21이라는 영화도 감명깊게 봤고,, 그래서 블랙잭 게임을 만들어보는 문제인가 했는데, 그건 아니고 완전 새로운 개념의 문제가 떡하니 나와서 살짝 아쉬웠다
하지만 그건그거고 한번 풀기로 마음 먹었으면 풀어보는게 인지상정!!
먼저 list에다가 입력받은 값들 중 M보다 큰 값들을 집어 넣었다. 그러고 나서 내림차순으로 정렬을 해주었다..
리스트를 내림차순으로 정렬 할 필요는 없는데 조금 다르게, 특이하게, 풀려고 하다가 귀찮아 질 것 같아서 포기하고 정렬한 부분만 남겨뒀다
그이후에 카드3장을 반복문으로 get해서 가장 최댓값을 구하는 방식을 선택했다
전체 코드는 아래와 같이 만들어 줬다
import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < N; i++) { int a = Integer.parseInt(st.nextToken()); if (a <= M) list.add(a); } Collections.sort(list, Collections.reverseOrder()); int ans = -1; for (int i = 0; i < list.size() - 2; i++) { for (int j = i + 1; j < list.size() - 1; j++) { for (int k = j + 1; k < list.size(); k++) { int chk = list.get(i) + list.get(j) + list.get(k); if(chk <= M) { ans = Math.max(chk, ans); } } } } bw.write(ans + "\n"); bw.flush(); br.close(); bw.close(); } }
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 17300번] 패턴 - Java //Wello Horld// (0) 2019.07.09 [백준 1712번] 손익분기점 - Java //Wello Horld// (0) 2019.07.04 [백준 3052번] 나머지 - Java //Wello Horld// (0) 2019.07.04 [백준 17293번] 맥주 99병 - Java //Wello Horld// (1) 2019.06.29 [백준 4949번] 균형잡힌 세상 - Java //Wello Horld// (0) 2019.06.29