본문 바로가기

코딩테스트/BOJ

[파이썬/백준] 3040번: 백설 공주와 일곱 난쟁이 (Python)

문제

www.acmicpc.net/problem/3040

 

3040번: 백설 공주와 일곱 난쟁이

매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.

www.acmicpc.net

 

풀이

 

- 브루트 포스, 완전탐색

 

 - 난쟁이 한 명을 제외한 키의 합을 배열에 담고, 각 배열에서 다른 난쟁이의 키를 뺐을 때, 100이 나오면 되는 문제이다

 

코드

arr = [int(input()) for _ in range(9)]

arr2 = [0 for _ in range(9)]
breaker = False

for i in range(9):
    arr2[i] = sum(arr) - arr[i] # i번 째 인덱스에 해당하는 값을 제외한 합
    for j in range(i+1, 9):
        if arr2[i] - arr[j] == 100: # arr2[i]에서 숫자 하나를 뺀 값이 100이면 정답
            a, b = arr[i], arr[j]
            arr.remove(a)
            arr.remove(b)
            breaker = True
            break
    if breaker == True:
        break

for i in range(7):
    print(arr[i])