반응형
https://www.acmicpc.net/problem/2309
from itertools import permutations
li = [ int(input()) for _ in range(9) ] # 9명의 난쟁이를 입력받아 리스트로 만드는 리스트 컴프리헨션
# 순열(permutations) 을 사용하여, 9요소의 리스트 중 7개를 뽑는 경우의 수 중에서,
for item in permutations(li, 7):
if sum(item) == 100: # 합이 100이 되면,
for x in sorted(list(item)): # 그 7 요소를 한줄에 하나씩 출력
print(x)
break
순열(permutations)과 조합(combinations)을 오랜만에 쓰니 itertools 에서 꺼내오는거 까먹어서 정리해서 올린다.
그리고 인강 들으면서 알게된 순열 안 쓰고 푸는 법
# 순열 안 쓰기
li = [ int(input()) for _ in range(9) ]
li.sort()
total = sum(li)
def main(): # 이중 for문 나오기 위해 함수로 바꾸고 return 이용.
for i in range(8):
for j in range(i + 1, 9):
if total - li[i] - li[j] == 100:
for k in range(9):
if i != k and j != k:
print(li[k])
return
main()
순열 안 쓴것도 신기하지만 이중 for문 나오는거 이렇게 하는 건 첨 알았다. flag 로 해왔는데 이것도 편한듯!
반응형
'알고리즘 🤔' 카테고리의 다른 글
[백준 파이썬 10815] 숫자 카드 (0) | 2023.01.10 |
---|---|
[백준 파이썬 2512] 예산 (0) | 2023.01.10 |
[백준 파이썬 1302] 베스트셀러 (0) | 2023.01.10 |
[백준 파이썬 11286] 절댓값 힙 (0) | 2023.01.10 |
[백준 파이썬 10844] 쉬운 계단 수 (실버 1) (0) | 2022.11.22 |