코딩테스트/백준
백준[2798] - 블랙잭
문제
작성한 코드
from itertools import combinations
N, M = map(int, input().split())
cards = list(map(int, input().split()))
result = 0
for i in combinations(cards, 3):
if result < sum(i) <= M:
result = sum(i)
print(result)
- from itertools import combinations : 조합 사용 [모든 경우의 수를 고려할 때 사용]
- N과 M을 공백을 기준으로 입력받아 int형으로 형변환 해준다.
- 카드 갯수 만큼 입력받을 카드들을 cards 라는 리스트에 공백을 기준으로 저장한다.
- combinations으로 cards 리스트에서 3장을 순서에 상관없이 뽑은 리스트를 가지고 for문을 돌린다.
- 3장 뽑은 것들의 합을 sum()으로 구한 뒤, M보다 작거나 같은지 확인이되면 → result에 저장한다.
- 이런 식으로 for문을 돌리다보면, 최대한 M에 가까운 합이 나온다.
- 최종적으로 print()로 result를 출력한다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준[7568] - 덩치 (0) | 2023.02.13 |
---|---|
백준[2231] - 분해합 (0) | 2023.02.11 |
백준 [13305] - 주유소 (0) | 2023.02.10 |
백준 [1541] - 잃어버린 괄호 (0) | 2023.02.07 |
백준 [11399] - ATM (0) | 2023.02.07 |
댓글