알고리즘/백준

[파이썬] BOJ_2309(일곱 난쟁이)

딱따구르리 2023. 5. 27. 17:41
728x90
반응형

문제

 

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

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net


 

해설

 

9명의 난쟁이 중 2명이 가짜인 것이기 때문에 우선 난쟁이들 키의 합에서 2명씩 빼보면서 100이 되는 때를 찾으면 된다.

이중 반복문을 사용해 0번 인덱스와 1번 인덱스부터 두개씩 빼보면 된다.

 

찾은 경우 반복문 안에서 해당 i번, j번 인덱스를 제거하면

i번 인덱스가 항상 j번 인덱스보다 앞에 있어서

인덱스가 앞으로 하나씩 밀리는 경우가 생기기 때문에

인덱스를 따로 저장하고 반복문 밖에서 제거하거나 j번 인덱스에서 1을 뺀 인덱스를 제거해야 한다.


코드

 

-파이썬

#백준 2309(일곱 난쟁이)

height = [int(input()) for _ in range(9)]
height.sort()
for i in range(len(height)-1):
    for j in range(i+1, len(height)):
        if sum(height) - height[i] - height[j] == 100:
            h1 = height[i]
            h2 = height[j]

height.remove(h1)
height.remove(h2)
for i in height:
    print(i)
728x90
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[파이썬] BOJ_2798(블랙잭)  (0) 2023.06.01
[파이썬] BOJ_2644(촌수계산)  (0) 2023.05.30
[파이썬] BOJ_2231(분해합)  (0) 2023.05.23
[파이썬] BOJ_8958(OX퀴즈)  (0) 2023.05.21
[파이썬] BOJ_17608(막대기)  (0) 2022.11.07