문제풀이/BOJ
[Python] BOJ/백준 2309번 일곱 난쟁이
서채리
2022. 9. 19. 18:52
[문제]
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
[풀이]
"아홉 난쟁이의 키는 모두 다르지만 그중 일곱 난쟁이의 크기의 합은 100이 된다" 는 것은 sum(난쟁이 리스트) - (난쟁이1 + 난쟁이2) == 100과 같다. 두 난쟁이를 구하기 위해 전체 탐색을 해야 한다.
[코드]
import sys
men = [int(sys.stdin.readline()) for _ in range(9)]
flag = False
for i in range(9):
for j in range(i + 1, 9):
if sum(men) - (men[i] + men[j]) == 100:
men[i], men[j] = 0, 0
break
if flag:
break
men = sorted(men)
del men[0]
del men[0]
[print(i) for i in men]