from sys import stdin
from itertools import combinations
# 카드 개수와 기준 점
n,m = map(int,input().split())
# 카드 넘버
list=list(map(int,stdin.readline().split()))
big=0
# 조합을 사용
for i in combinations(list,3):
target=sum(i)
if target>big and target<=m:
big=target
print(big)
문제풀이
입력이 2줄이라 첫째줄에는 카드의 개수와 기준 숫자를 입력받는다.
두번째 입력에는 카드에 쓰여있는 숫자들을 입력받는다.
파이썬 순열/조합 라이브러리인 itertools를 선언해 combinations()를 사용했다.
피드백
combinations()을 사용하지 않기 위해서는 3중 for문을 사용해야한다.
조합함수로 나온 결과를 어떻게 더해줘야 하는지 생각했었는데 단순하게 sum()을 사용하는 것이었다...(생각을 못함)
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 2720 "세탁소사장동혁_greedy" 문제풀이 (0) | 2021.09.28 |
---|---|
[Python] 백준 15829 "Hashing_해싱" 문제풀이 (0) | 2021.09.16 |
[Python] 백준 2231 "분해합_완전탐색" 문제풀이 (0) | 2021.09.16 |
[Python] 백준 12605 "단어 순서 뒤집기_스택" 문제풀이 (0) | 2021.09.09 |
[Python] 백준 17608 "막대기_스택" 문제풀이 (0) | 2021.09.08 |