1. 9명의 난쟁이 중에서 7명을 찾는 방법
2. 9명의 난쟁이 중에서 2명을 찾는 방법
브루트포스로 문제를 해결할 수 있고,
itertools의 combinations을 사용해 문제를 해결할 수 있다.
# combinations를 사용해 문제를 해결한 코드
from itertools import combinations
data = [int(input()) for _ in range(9)]
for i in combinations(data, 7):
if sum(i) == 100:
result = list(i)
break
result.sort()
for i in result:
print(i)
import sys
n = 9
a = [int(input()) for _ in range(n)]
a.sort()
for i in range(0, n):
for j in range(i + 1, n):
total = 0
for k in range(0, n):
if i == k or j == k:
continue
total += a[k]
if total == 100:
for k in range(0, n):
if i == k or j == k:
continue
print(a[k])
sys.exit(0)
O(n^2)의 코드로, 두 코드간 실행에는 큰 차이가 없음을 확인할 수 있었다.
'백준 알고리즘 (Baekjoon Algorithm)' 카테고리의 다른 글
[파이썬] 백준 알고리즘 No.14500 테트로미노 (0) | 2021.12.30 |
---|---|
[파이썬] 백준 알고리즘 No.3085 사탕 게임 (0) | 2021.12.29 |
[파이썬] 백준 알고리즘 No.6588 골드바흐의 추측 (0) | 2021.12.28 |
[파이썬] 백준 알고리즘 No.2193 이친수 (1) | 2021.12.27 |
[파이썬] 백준 알고리즘 No.11727 2Xn 타일링 2 (0) | 2021.12.26 |