白俊-七人の小人


https://www.acmicpc.net/problem/2309

質問する


王妃を避けるため、7人の小人と平和に暮らしていた白雪姫は危機に直面した.一日の仕事を終えて帰ってきた矮人は7人ではなく、9人だった.
9人の小人はみな「白雪姫と7人の小人」の主役だと主張している.優れた数学的直感を持つ白雪姫は、幸いにも7人の小人の身長の和が100だったことを覚えている.
9人のジュニアの身長を手に入れたとき、白雪姫に7人のジュニアを探すプログラムを書いてください.

入力


9列の小人の身長.与えられた身長は100を超えない自然数で、9人のジュニアの身長はすべて異なっていて、可能な答えがたくさんあれば、勝手に出力することができます.

しゅつりょく


昇順に7人の小人の身長を出力する.7人の小人が見つからないことはない.

私の答え

A_list=[]

#난쟁이 키 리스트
for _ in range(9):
    A=int(input()) #난쟁이 키 입력
    A_list.append(A) #키 리스트화

answer=[]
sum_9=sum(A_list) #9명 난쟁이 합
sum_7=100 #7명 키 합 (Constant)
sum_2=0

#계산
for i in range(0,len(A_list)):
    for j in range(i+1, len(A_list)):
        
        sum_2=A_list[i]+A_list[j]
        
        if sum_9-sum_2==100:
            A_list.remove(A_list[i])
            A_list.remove(A_list[j-1])# 윗단계에서 리스트 -1 값이 되므로 -1
            answer=sorted(A_list) # 오름차순 정렬
            break # 7명 난쟁이 키의 합이 유일하므로 연산을 멈추고 break

# 문제에서 요구하는 출력형태
for k in range(len(A_list)):
    print(answer[k])

結果(メモリ、時間)



ノートをまちがえる

        if sum_9-sum_2==100:
            A_list.remove(A_list[i])
            A_list.remove(A_list[j-1])# 윗단계에서 리스트 -1 값이 되므로 -1
            answer=sorted(A_list) # 오름차순 정렬
            break # 7명 난쟁이 키의 합이 유일하므로 연산을 멈추고 break