조건 : 'N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구해 출력하시오'
모든 경우의 수를 다 찾아보는 brute force 방식을 쓰기로 결정
3개의 카드를 선택해야 하기 때문에 3중 for문을 이용하였으며,
max 함수를 이용해서 최대값을 찾는 형태로 구성하였다.
N, M = map(int,input().split())
arr = list(map(int,input().split()))
result = 0
for i in range(N):
for j in range(i + 1, N):
for k in range(j + 1, N):
tmp = arr[i] + arr[j] + arr[k]
if tmp <= M:
result = max(result, tmp)
print(result)
Feedback
알고리즘 중에서는 비교적 쉬운 난이도였기에 푸는데 그렇게 어렵지는 않았던 문제