dp 에 이어 드디어! 브루트포스 문제를 풀게 되다니... 구현/수학 만 하염 없이 풀다가 이렇게 있어 보이는 문제를 풀 땐 마음이 긴장된다.
긴장은 둘째 치고... 인생 첫 브루트포스 문제 브론즈 1 임에도 답을 보고 풀다... 브루트포스에 지레 겁 먹어서인지 바보 같은 코드만 짜다가 결국 감을 잡고자 여러 답을 확인해보고 이해하기로 했다.
1. 9 명이라고 제시되어 있다.
2. 오름차순으로 출력한다.
3. 어떤 7 명인지 찾을 필요는 없다.
핵심은 9 명의 난쟁이 중 2 명을 뺀 후 나머지의 합이 100 이 됨을 확인하는 것이 아니라, 9 명을 모두 합하고 2 명을 빼면 100 이 되는 순간을 확인하는 것이다. 그래서 먼저 list 에 9 명의 키를 모두 담고 flag 를 만든다. flag 는 합이 100 이 되는 순간이다. flag 가 true 가 되었을 때 두 값을 list 에서 지워준다.
list = []
# 리스트에 키를 모두 담는다
for i in range(9) :
height = int(input())
list.append(height)
flag = False
for i in range(9) :
if flag == True :
break
for j in range(i+1, 9) :
if sum(list) - list[i] - list[j] == 100 :
first = list[i]
second = list[j]
list.remove(first)
list.remove(second)
flag = True
break
list.sort()
for i in list :
print(i)
'Algorithm 뽀개기' 카테고리의 다른 글
[백준] 14501 퇴사 - 재귀 (Python) (3) | 2024.09.18 |
---|---|
[백준] 10819 차이를 최대로 - 백트래킹 (Python) (1) | 2024.09.18 |
[백준] 1912 연속합 - DP (Python) (0) | 2024.08.09 |
[백준] 14002 가장 긴 증가하는 부분 수열 4 - DP (Python) (0) | 2024.08.08 |
Dynamic Programming, DP (1) | 2024.07.23 |