취준/코딩테스트

백준 2309 (python): 일곱 난쟁이

린구 2024. 8. 1. 11:20
반응형
height = []
flag = True

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

gap = sum(height) - 100
for i in range(8):
    for j in range(i+1, 9):
        a = height[i]
        b = height[j]
        if a + b == gap:
            height.remove(a)
            height.remove(b)
            flag = False
            break
    if flag == False:
        break

height.sort()

for i in height:
    print(i)

 

반대로 생각하기

 

import itertools

height = [int(input()) for _ in range(9)]

for i in itertools.combinations(height, 7):  # 해당 배열을 7명 중복없이 뽑음
    if sum(i) == 100:  # 그합이 100이라면
        for j in sorted(i):  # 그 7명을 오름차순으로 정렬후 출력
            print(j)
        break # 반복문 탈출

 

순열은 `from itertools import permutations`,

조합은 `from itertools import combinations` 에 있는 라이브러리를 이용

 

 

반응형