7명의 난쟁이 합이 100이 되는 경우를 찾고 하나씩 출력하는 문제이며,
7중 for문을 쓰면 귀찮은 방법이 되기 때문에 두 가지 방법을 제시할 수 있습니다.
1. 2명 합만 찾는 법
-> 9명의 난쟁이 합을 구한다.
-> 2명을 제외 시켜 나머지 7명 합이 100되는 경우를 찾는다.
-> 해당되는 7명을 정렬하여 한명씩 출력한다.
2. 내장함수 combinations를 통한 방법
-> combinations를 통해 7명 합이 100이 되는 경우를 찾는다
-> 해당되는 7명을 정렬하여 한명씩 출력한다.
from itertools import combinations
#입력
heights = [int(input()) for _ in range(9)]
# 7명 합이 100인 경우 찾고 하나씩 출력
for seven_h in combinations(heights, 7):
if sum(seven_h) == 100:
for h in sorted(seven_h):
print(h)
break
'CodingTest > Content' 카테고리의 다른 글
백준 14916번 거스름돈 풀이 및 정답(python) (0) | 2025.03.23 |
---|---|
백준 2798번 블랙잭 풀이 및 정답(python) (0) | 2025.02.08 |
백준 2331번 분해합 풀이 및 정답(python) (0) | 2025.02.05 |
자료구조 면접 질문 리스트, 기출 모음(신입 면접, 대학원) (2) | 2024.12.05 |
백준 2668번 숫자고르기(그림 포함) 자바 풀이 및 정답 (0) | 2024.11.17 |