' 2309번 일곱 난쟁이 '
https://www.acmicpc.net/problem/2309
일곱 난쟁이
의 키의 합이 100
인 일곱 난쟁이를 찾는다.모두 다르며
주어지는 키는 100을 넘지 않는 자연수이다.arr=[]
for i in range(9):
arr.append(int(input()))
lst=[]
n=sum(arr)-100 # 나머지 2명의 키의 합
for i in range(len(arr)-1): # 나머지 2명의 키의 합으로 해당하는 2명의 난쟁이 찾기 (모든 난쟁이는 키가 다 다르므로)
for j in range(i+1,len(arr)):
if arr[i] + arr[j] == n:
lst.append(arr[i])
lst.append(arr[j])
break
if len(lst)==2: #2명을 찾았으면 for문 탈출
break
l= sorted(list(set(arr) - set(lst))) #2명을 제외한 나머지 난쟁이들만 리스트에 남기고 오름차순으로 정렬 -> 이방법 말고 arr에서 해당 값들 remove로 지워내도 된다.
for i in range(len(l)):
print(l[i])
# 두 난쟁이를 제거하는 방식
def solve():
for i in range(9):
for j in range(i + 1, 9):
if 100 == sum(lst) - (lst[i] + lst[j]):
lst.pop(j) # 맨 뒤에꺼부터 제거하기
lst.pop(i)
return lst
# lst.remove(lst[i]) #다른방법
# lst.remove(lst[j])
lst = []
for _ in range(9): # 난쟁이 키 입력 받음
lst.append(int(input()))
lst.sort() # 오름차순 정렬
result = solve()
for a in result:
print(a)
# 7명의 합이 100인 난쟁이들 찾기
lst = []
for _ in range(9): # 난쟁이 키 입력 받음
lst.append(int(input()))
lst.sort() # 오름차순 정렬
for a in range(9):
for b in range(a + 1, 9):
for c in range(b + 1, 9):
for d in range(c + 1, 9):
for e in range(d + 1, 9):
for f in range(e + 1, 9):
for g in range(f + 1, 9):
# 7명의 키의합이 100인 난쟁이 찾기
if 100 == lst[a] + lst[b] + lst[c] + lst[d] + lst[e] + lst[f] + lst[g]:
print(lst[a])
print(lst[b])
print(lst[c])
print(lst[d])
print(lst[e])
print(lst[f])
print(lst[g])
exit() # 테스트 케이스가 한개 뿐이라서