본문 바로가기

코딩테스트/Baekjoon

(Python 3) 백준 알고리즘 2309 일곱 난쟁이

문제 2309 일곱 난쟁이


문제


9명의 난쟁이 중에서 "백설공주와 일곱 난쟁이"의 주인공인 일곱 난쟁이를 찾는 문제

  • 일곱 난쟁이 키의 합은 100이다.

입력

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르다.


출력


일곱 난쟁이의 키를 오름차순으로 출력한다. 

일곱 난쟁이를 찾을 수 없는 경우는 없다.


예제 입력

20
7
23
19
10
15
25
8
13
cs

예제 출력
7
8
10
13
19
20
23
cs


코드
1
2
3
4
5
6
7
8
9
10
11
12
import sys
= 9
heights = [int(input()) for _ in range(n)]
heights.sort()
sum_heights=sum(heights)
for i in range(n):
    for j in range(i+1, n):
        if sum_heights - heights[i]-heights[j] == 100:
            for k in range(n):
                if i!= k and j != k:
                    print(heights[k])
            sys.exit(0)
cs

코드 설명 

1. 9명의 난쟁이 키를 리스트로 입력받음 

1.1 3에서 오름차순으로 출력할것을 차라리 1에서 오름차순으로 정렬해서 넘김 1.2 n명의 키의 합을 저장

2. 9명중 2명을 제외한 키가 100인 경우를 찾기 2.1 2명을 한번에 100에서 빼기

3.2명을 제외한 7명 난쟁이의 키를오름차순으로 출력 (1.1에서 실행으로 생략가능)


알고리즘 분류

  • 브루트 포스





반응형