n, m = map(int, input().split()) #카드의 개수 / 가장 가까워야 하는 수
cards = 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):
card_sum = cards[i] + cards[j] + cards[k]
#조건에 해당되는 새로운 수가 나올 때마다 갱신
if m >= card_sum and card_sum > result:
result = card_sum
print(result)
- 구할 수 있는 모든 조합의 수의 카드를 구함 -> for문을 통해서 구함
- 모든 합을 다 저장해놨다가 최대를 찾아야 하나 생각함,, -> 조건에 맞는 변수를 하나 두고 새로운 값이 나올 때마다 갱신
'Algorithm' 카테고리의 다른 글
자바 알고리즘 연습(2) (0) | 2025.01.02 |
---|---|
2231 분해합 / 브루트포스 (0) | 2025.01.02 |
13305번 주유소 / 그리디 (0) | 2024.12.31 |
자바 알고리즘 연습(1) (0) | 2024.12.24 |
10799번 쇠막대기 / 스택 (0) | 2024.12.17 |