import sys
input = sys.stdin.readline
n,m = map(int,input().split())
card = list(map(int,input().split()))
l = len(card)
anw = 0
for i in range(l):
for j in range(l):
if i == j:
continue
for k in range(l):
if k == i or k == j:
continue
sum = card[i] + card[j] + card[k]
if sum > m:
continue
elif sum > anw:
anw = sum
print(anw)
카드 리스트에서 만들어질 수 있는 카드 3장의 합을 모두 확인하기 위해 무식하게 반복문 3번을 사용해주는 방법을 선택했다.
이제는 거의 습관이 되어버린 sys...
n,m 에 카드의 개수와 가까워야할 수 m을 받아준다.
card 라는 리스트를 만들어 둘째 줄 카드에 들어갈 수를 넣어주고 반복문에 사용될 반복범위를 설정할 카드의 길이 l을 만들어준다.
anw 은 카드 세 장의 합을 넣어 줄 것이다.
if 로 같은 카드는 더하지 않게 설정을 해주고
다시 if 로 3장의 카드의 합이 m을 초과하면 버리고 이전의 anw 보다 클 경우 anw 를 지금의 3장의 합으로 바꿔준다.
이렇게하면 카드 리스트 안 3장의 카드의 합이 m을 초과하지 않으면서 m과 같거나 가장 가까운 수가 될 겉이다.
(모든 숏코딩은 볼 수 없도록 되어있습니다. 궁금하시분은 댓글 달아주시면 보내드리겠습니다.)
문제를 단순히 풀기만 하는게 아니라 생각을 글로 적다보니 아이디어가 떠올라 숏코딩에 도전해 보았다.
코딩을 짧게 한다고 잘하는 건 아니지만 나한테 있어서 숏코딩은 재미있고 지속적인 흥미를 느끼게 해준다.