[백준] 블랙잭 2798번
나의 풀이
N, M = map(int, input().split())
cards = list(map(int, input().split()))
answer = 0
for i in range(len(cards) - 2):
for j in range(i + 1, len(cards) - 1):
for k in range(j + 1, len(cards)):
_sum = cards[i] + cards[j] + cards[k]
if _sum > M:
continue
elif _sum == M:
answer = _sum
break
else:
answer = max(answer, _sum)
print(answer)
- 카드 갯수, 최대값, 카드 번호를 전부 입력받는다.
- 3개의 조합을 짜야되기 때문에, 3중 반복문을 돌린다.
- 3개의 카드의 합이 최대값보다 크다면, 사용할 수 없으므로 그냥 넘긴다. 합이 최대값과 같다면 다른 건 보지 않아도 이게 정답이 되기 때문에 answer 값을 바꿔주고, break 한다. 합이 최대값보다 작다면, 최소값 중에서, 가장 큰 값을 max 를 사용하여 구해준다.