2798 - 블랙잭[python]

지환·2023년 9월 5일
0

백준(python)

목록 보기
28/67

출처 | https://www.acmicpc.net/problem/2798

코드

n,m = map(int, input().split())
list_card = list(map(int, input().split()))
result = 0

for i in range(0,n-2):
    for j in range(i+1, n-1):
        for k in range(j+1, n):
            max_sum = list_card[i] + list_card[j] + list_card[k]
            
            if max_sum > m:
                continue
            
            else:
                result = max(result, max_sum)
                
print(result)
  • 5 6 7 8 9를 리스트로 입력받은 후 반복문을 중첩 사용하여 모든 경우의 수에 대한 합을 구하고 새로운 리스트에 담도록 했다.

그 합이 M을 초과한다면 그냥 반복문을 계속 진행하고, M보다 작거나 같은 경우에는 그 값을 새로운 리스트에 추가하도록 했다.

그리고 반복문을 완전히 빠져나왔을때 max()함수를 이용해 가장 큰 값을 출력하도록 했다.

코드2


from itertools import combinations
 
n,m = map(int, input().split())
card = list(map(int, input().split()))
 
ans = 0
 
for i in combinations(card, 3):
    if ans < sum(i) <= m:
        ans = sum(i)
 
print(ans)

profile
아는만큼보인다.

0개의 댓글