9명의 난쟁이 중에서 7명을 뽑아야 하니까 조합을 사용해야 한다.
조합은 combianations 모듈을 가져다 쓰면 된다.
from itertools import combinations
heights = [int(input()) for i in range(9)]
for candis in combinations(heights, 7):
if sum(candis) == 100:
for real_dwarfs in sorted(candis):
print(real_dwarfs)
break
9개의 입력을 받아서 heights에 넣은 다음 heights 리스트에서 7개를 선택해서 candis에 넣는다.
candis의 합이 100일 때만 리스트의 각각의 원소를 출력해주면 되는데, 오름차순으로 출력하라고 했으니 candis를 sorted로 오름차순 정렬한 뒤 출력하면 된다.
여러가지의 답이 존재할 수 있으니 break를 넣어줘야 정답이다.
'알고리즘 문제풀이 > Python3' 카테고리의 다른 글
[Python3, 파이썬] 백준 1440번: 수리공 항승 (0) | 2022.03.23 |
---|---|
[Python3, 파이썬] 백준 11047번 동전 0 (0) | 2022.03.23 |
[파이썬, Python3] 백준 1302번 베스트셀러 (0) | 2022.03.22 |
[Python3, 파이썬] 백준 11286번 절댓값 힙 (0) | 2022.03.22 |
[Python3, 파이썬] 백준 2164 카드2 (0) | 2022.03.21 |