백준 2798 : 블랙잭
문제 링크
https://www.acmicpc.net/problem/2798
문제 내용
(요약) 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 |