문제 번호 2798번 : 블랙잭 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/2798
문제 설명
모든 경우의 수를 다 살펴봐야 하는 브루트 포스 알고리즘 문제입니다.
문제 풀이
해당 카드를 모두 더 해보고 원하는 숫자와 가장 가까운 숫자를 찾아야 합니다.
3가지 카드로 구성해라 했으니 for문을 3개를 돌려야 할 것입니다. 그래야 3가지 카드를 모두 더한 값을 구할 수있으니깐요.
첫 반복문은 첫 카드부터 두 번째 반복문은 첫 반복문의 다음 카드부터 세 번째 반복문은 두 번째 반복문의 다음 카드부터 반복합니다. 그러면 모두 빠짐없이 더한 값을 비교할 수 있습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int cardNum = sc.nextInt();
int blackJack = sc.nextInt();
int[] card = new int[cardNum];
int nextResult = 0;
int result = 0;
for(int i=0; i<card.length; i++){
card[i] = sc.nextInt();
}
for(int i=0; i<card.length; i++){
for(int j=i+1; j<card.length; j++){
for(int k=j+1; k<card.length; k++){
nextResult = card[i] + card[j] + card[k];
if(result < nextResult && nextResult <= blackJack){
result = nextResult;
}
}
}
}
System.out.println(result);
}
}
'알고리즘 > 백준 문제 및 정답' 카테고리의 다른 글
문제 번호 2231번 : 분해합 - JAVA [자바] (0) | 2023.04.26 |
---|---|
문제 번호 24313번 : 알고리즘 수업 - 점근적 표기 1 - JAVA [자바] (0) | 2023.04.21 |
문제 번호 24267번 : 알고리즘 수업 - 알고리즘의 수행 시간 6 - JAVA [자바] (0) | 2023.04.21 |
문제 번호 24266번 : 알고리즘 수업 - 알고리즘의 수행 시간 5 - JAVA [자바] (0) | 2023.04.21 |
문제 번호 24265번 : 알고리즘 수업 - 알고리즘의 수행 시간 4 - JAVA [자바] (0) | 2023.04.19 |