문제
- 카드 3장을 뽑아 M을 넘지 않으면서 M에 최대한 가까운 합을 만들어라
문제 풀이
- 한개씩 카드를 뽑아서 합이 M보다 크면 넘어가고
- M과 같거나 같으면 그 합이 가장 큰 것을 result에 담아서 출력한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
N,M = map(int, input().split())
numbers=list(map(int, input().split()))
# print(numbers)
result = 0
for i in range(N):
for j in range(i+1, N):
for k in range(j+1, N):
if numbers[i] + numbers[j] + numbers[k] >M:
continue
else:
result = max(result, numbers[i]+ numbers[j]+numbers[k])
print(result)
|
cs |
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 1002 피보나치 함수 파이썬 풀이 (동적계획법) (0) | 2021.06.24 |
---|---|
[백준] 2231 분해합 파이썬 풀이 (브루트포스) (0) | 2021.06.24 |
[백준] 1002 터렛 파이썬 풀이 (기본 수학) (0) | 2021.06.24 |
[백준] 2579 계단 오르기 파이썬 풀이 (동적 계획법) (0) | 2021.06.24 |
[백준] 9663 N-Queen 파이썬 풀이 (백트래킹) (1) | 2021.06.24 |