알고리즘

들어오는 순서에 상관없이 숫자 7개의 합을 100으로 맞춰야 하기 때문에 파이썬 itertools의 combinations를 사용했다.

알고리즘은 잘 생각했는데 출력물이 깔끔하지 않아서 아쉬웠다. 다른 사람의 코드를 보니 sorted를 for문의 반복횟수로 지정해주었다. 파이썬 for문은 어떤 시퀀스(sequence)를 반복하는 문법이므로 sorted가 반복횟수가 될 수 있는 것이다.

 

최종 코드

from itertools import combinations as comb
t = []
h = 0
for _ in range(9):
    t.append(int(input()))
    
for i in comb(t,7):
    if sum(i) == 100:
        i = list(i)
        i.sort()
        for j in i:
            print(j)
        break

 

참고한 코드

import itertools 
stature = []

for _ in range(9):
    stature.append(int(input()))

for i in itertools.combinations(stature,7):
  if sum(i) == 100:
    for j in sorted(i):
        print(j)
    break

 

* 백준 사이트 hyen1553님의 코드를 참고하였습니다.

 

문제를 푸는데 11분 걸렸는데, 출력물을 고민하느라 5분은 쓴 것같다. 😂

다음에 sorted를 시퀀스로 사용하는 방법 써먹어야지!!

sebinChu