백준_2798번

정소담·2023년 1월 26일
0

BOJ Short Review

목록 보기
19/44
post-thumbnail

2798번 블랙잭

카드 장수와 기준이 되는 숫자가 주어지고 각 카드의 숫자가 주어진다.
카드들 중 세장을 더 했을 때 기준이 되는 숫자보다 작지만 가장 가까운 수를 구하는 문제.

n,m = map(int,input().split()) # 카드 개수 n ,기준 수 m
card = list(map(int,input().split())) # 카드숫자 리스트
ans = [] # 빈 리스트 생성

# 빈 리스트에 세장의 합이 기준이 되는 숫자 m 보다 작은 모든 경우의 수를 채웠다.

for x in range(0, n-2): 
# 카드의 순서가 고정이 되어있다면 첫번째 카드는 마지막 두장은 순회를 돌지 않아도 된다.
    for y in range(x+1, n-1):
# 두번째 카드는 첫번째 카드 다음부터 순차적으로 순회 도는데 마지막 한장은 제외한다.
        for z in range(y+1,n):
# 세번째 카드는 두번째 카드 다음부터 순회를 돈다.
            if card[x]+card[y]+card[z] <= m:
                ans.append(card[x]+card[y]+card[z])
# 세장의 카드의 수를 더한 값이 기준 숫자보다 작으면 리스트에 추가하고
print(max(ans)) # 그 중 가장 큰 수를 출력하도록 했다.
profile
Hi ! I'm newbie :)

0개의 댓글