[백준/Python] 2798번 : 블랙잭
문제
https://www.acmicpc.net/problem/2798
- 조합을 활용하면 쉽게 풀리는 문제
풀이
파이썬의 itertools를 활용하여 조합을 쉽게 활용할 수 있었다. 조합의 모든 아이템을 순회하며 아이템의 합을 M의 값과 비교하며 가장 근사한 값을 구했다.
from itertools import combinations
N, M = map(int, input().split())
cards = list(map(int, input().split()))
rst = 0
for item in combinations(cards, 3):
temp = sum(item)
if temp <= M:
# max method (args 여러개인 경우 가장 큰 값 리턴)
rst = max(rst, temp)
print(rst)
후기
며칠 전에 이 문제를 처음 봤었는데, 당시에는 다중 루프문을 통해서 풀이를 해보려다가 쉽게 포기했던 것 같다. 최근에 알고리즘 개념 및 문제 풀이 강의를 많이 활용했는데, 확실히 생각없이 문제만 푸는 것보다 실력이 빠르게 느는 것 같다. 고민은 1시간만, 가능한 많은 문제를 풀고 익히기!