문제
2798번: 블랙잭
첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장
www.acmicpc.net
입력
- 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다.
- 합이 M을 넘지 않는 카드 3장을 찾을 수 있는 경우만 입력으로 주어진다.
출력
- 첫째 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력한다.
입력 예제
5 21
5 6 7 8 9
10 500
93 181 245 214 315 36 185 138 216 295
출력 예제
21
497
문제 풀이
- 세 개의 카드를 더한 모든 경우를 탐색 한 후, 최솟값을 출력한다.
코드
n, m = map(int,input().split())
array = list(map(int,input().split()))
n = len(array)
result = 0
for i in range(n):
for j in range(i + 1, n):
for k in range(j + 1, n):
if array[i] + array[j] + array[k] > m:
continue
else:
result = max(result, array[i] + array[j] + array[k])
print(result)
'Algorithm > Broute Force' 카테고리의 다른 글
| [Java] SWEA 1974번 스도쿠 검증 (0) | 2023.06.29 |
|---|---|
| [Python] 백준 19532번 수학은 비대면강의입니다 (0) | 2023.03.27 |
| [Python] 1436번 영화감독 숌 (0) | 2023.02.20 |
| [Python] 백준 7568번 덩치 (1) | 2023.02.20 |
| [Python] 백준 2231번 분해합 (0) | 2023.02.20 |