백준 Baekjoon

[C언어] 백준 2798 : 블랙잭

sujo 2020. 7. 30. 16:24

백준 2798 : 블랙잭

 

문제 링크

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 ��

www.acmicpc.net

 

 

문제 내용

(요약) N개의 카드 중 3개를 조합하여 M에 가장 가까운 숫자를 찾는 프로그램을 만들자.(단, M이상을 넘기면 안 된다.)

 

 

Idea

  • 순서에 상관없이 중복되지 않도록 카드 중 3개를 뽑는다.
  • 카드가 N 개라면 경우의 수는 N * (N -1) * (N-2)이다.
  • for문의 범위를 적절히 조절하도록 하자.

 

 

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main() {
    int N, M, i, j, k, card[100], max = 0;
    scanf("%d %d"&N, &M);
    for (i = 0; i < N; i++)
        scanf("%d"&card[i]);
 
    for (i = 0; i < N - 2; i++) {
        for (j = i+1; j < N - 1; j++) {
            for (k = j+1; k < N; k++) {
                int tmp = card[i] + card[j] + card[k];
                if (max < tmp && tmp <= M) max = tmp;
            }
        }
    }
    printf("%d\n", max);
    return 0;
}
cs

 

'백준 Baekjoon' 카테고리의 다른 글

[JAVA] 백준 1822 : 차집합  (0) 2020.08.02
[C언어] 백준 2577 : 숫자의 개수  (0) 2020.07.30
[C언어] 백준 1475 : 방 번호  (0) 2020.07.27
[C언어] 백준 1912 : 연속합  (0) 2020.07.27
[C언어] 백준 10773 : 제로  (0) 2020.07.27