n장의 카드에서 3장을 뽑아
합이 m을 넘지 않으면서 m과 최대한 가깝게 만든다.
n, m = map(int, input().split())
data = list(map(int, input().split()))
sum_list = []
for x in range(0, n-2):
for y in range(x+1, n-1):
for z in range(y+1, n):
temp = data[x] + data[y] + data[z]
if temp <= m:
sum_list.append(temp)
sum_list.sort()
print(sum_list[-1])
n, m = map(int, input().split())
data = list(map(int, input().split()))
biggest = 0
for x in range(0, n-2):
for y in range(x+1, n-1):
for z in range(y+1, n):
temp = data[x] + data[y] + data[z]
if temp <= m and temp > biggest:
biggest = temp
print(biggest)
이전 코드와 다른 점
sum_list[-1]
)을 출력하도록 함.n, m = map(int, input().split())
data = sorted(list(map(int, input().split())), reverse=True)
biggest = 0
for x in range(0, n-2):
for y in range(x+1, n-1):
for z in range(y+1, n):
temp = data[x] + data[y] + data[z]
if temp <= m:
if temp > biggest:
biggest = temp
break
print(biggest)
이전 코드와 다른 점
temp
의 값은 줄어든다.temp <= m
일때 이 이후의 temp
값은 현재보다 줄어든다. temp
를 구하고 있기때문에 이후의 더 작은 temp
는 필요없으므로 break를 통해 for문 탈출.