반응형
https://www.acmicpc.net/problem/2309
코드 작성
arr = []
for _ in range(9):
arr.append(int(input()))
arr.sort()
for i in range(9):
for j in range(i+1, 9):
if sum(arr)-arr[i]-arr[j] == 100:
for k in range(9):
if k == i or k == j:
continue
else:
print(arr[k])
exit()
코드 풀이
#1. 문제이해
브루트포스에서 무차별 대입하여 정답을 찾기 위한 방법 중
일곱난쟁이의 문제는 사람이 9명, 난쟁이 7명을 찾는 문제이다.
방법을 적게 하기 위해서 7명을 찾는 것보다, 2명을 찾아 제외하는 방법이 더 빠르다. 그러기 위해 for문을 2번 사용하여 아닌 사람을 찾았고, 제외해 주었다.
#2. exit
정답을 찾았으면 for문을 빠져나와야 하는데 여러개 있으므로 전체 프로그램 종료를 하기 위해 break가 아닌 exit을 사용하였다.
반응형
'코딩 > Python' 카테고리의 다른 글
[Python] 백준 11057 오르막수 (0) | 2022.12.17 |
---|---|
[Python] 백준 11055 가장 큰 증가 부분 수열 (0) | 2022.12.17 |
[Python] 백준 2225 합분해 (0) | 2022.12.17 |
[Python] 백준 1476 날짜 계산 (0) | 2022.12.15 |
[Python] 백준 14002 가장 긴 증가하는 부분 수열4 (0) | 2022.12.15 |