반응형
문제
풀이
3중 for문으로 3개의 카드의 합을 구한다
카드의 합과 M값이 같다면 바로 리턴
카드의 합이 M값을 넘어간다면 넘어가고
카드의 합이 M값에 가까운 것을 비교해서 리턴해주는 것으로 해결하였다
코드
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();
}
System.out.println(blackJack(card, M));
}
public static int blackJack(int[] card, int M) {
int max = M;
for (int i = 0; i < card.length - 2; i++) {
for (int j = i + 1; j < card.length - 1; j++) {
for (int k = j + 1; k < card.length; k++) {
int sum = card[i] + card[j] + card[k];
if (M == sum) {
return sum;
}
if (M < sum) {
continue;
}
if (max > M - sum) {
max = M - sum;
}
}
}
}
return M - max;
}
}
출처
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 1018번 체스판 다시 칠하기 자바 java (0) | 2021.04.09 |
---|---|
백준 7568번 덩치 자바 java (0) | 2021.04.09 |
백준 2292번 벌집 자바 java (0) | 2021.04.08 |
백준 10250번 ACM 호텔 자바 java (0) | 2021.04.07 |
백준 2775번 부녀회장이 될테야 자바 java (0) | 2021.04.07 |
댓글