[백준] 2798번 : 블랙잭

letsbebrave·2022년 3월 5일
0

codingtest

목록 보기
35/146
post-thumbnail

문제

개념

iterools 라이브러리

원소들의 순열과 조합을 통해 경우의 수를 추출해내는 방법
import itertools

nCr (조합)

조합은 서로 다른 n개 중에 r개를 선택하는 경우의 수(순서 X)

result = list(itertools.combinations((["1","2","3","4"]),2))
print("**경우의 수 : %s개" % len(result))
print(result)

**경우의 수 : 6[('1', '2'),
 ('1', '3'),
 ('1', '4'),
 ('2', '3'),
 ('2', '4'),
 ('3', '4')]

list(map(int, sys.stdin.readline().split()))

띄어쓰기로 만들어진 여러 개의 수를 하나의 리스트에 담는 법
import sys 해줘야 사용 가능

풀이

import sys
import itertools

N, M = map(int, input().split())
arr = []

num = list(map(int, sys.stdin.readline().split()))

result = list(itertools.combinations(sorted(num),3))

for i in range(len(result)):
    if M >= sum(result[i]):
        arr.append(sum(result[i]))

print(max(arr)) # max를 해줘야 했음
# 수를 정렬해주고 넣어준다고 해도 
# 반드시 max 숫자가 맨 뒤에 나올거란 보장은 없음!
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글