브루트 포스 기초문제
블랙잭 (2798) [브론즈 II]
from itertools import combinations
n, m = map(int, input().split())
cards = list(map(int, input().split()))
answer = 0
for selected in combinations(cards, 3):
if sum(selected) <= m:
answer = max(sum(selected), answer)
print(answer)
- 최대한 단순하게 구현했다.
combination
을 활용해 3개로 조합을 뽑아 그 합이 m
미만인지 따졌다.

분해합 (2231) [브론즈 II]
n = int(input())
answer = 0
for number in range(1, n + 1):
number_listed = list(str(number))
number_listed = [int(i) for i in number_listed]
if number + sum(number_listed) == n:
answer = number
break
print(answer)
- 제일 작은 생성자라는 조건 하에 0부터 루프를 돌리되, 발견하면 루프를 종료해도 된다.

일곱 난쟁이 (2309) [브론즈 I]
from itertools import combinations
dwarfs = []
for _ in range(9):
dwarfs.append(int(input()))
answer = 0
for real in combinations(dwarfs, 7):
if sum(real) == 100:
answer = real
break
for i in sorted(answer):
print(i)
- 간단하게 조합을 이용했다. 총 9개의 후보군 중 7개의 조합을 뽑아 합이 100이면 답이다.
