https://www.acmicpc.net/problem/2961
2961번: 도영이가 만든 맛있는 음식
첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은
www.acmicpc.net
n = int(input())
lst = []
ans = []
result = [] # 정답 담을 배열
for i in range(n):
a, b = map(int,input().split()) # 입력 받고
lst.append([a,b])
def combi(cnt,ans):
if cnt == n: # n번 됐으면 함수 종료조건
if ans: # 만약 정답배열에 담겼으면
mul_ = 1
add_ = 0
for a in ans:
mul_ *= a[0] # 신맛들은 곱하기
add_ += a[1] # 쓴맛들은 더하기
result.append(abs(mul_ - add_)) # 두 개 뺀 절대값 정답 배열에 담아주고
return # 함수 끝내기
ans.append(lst[cnt])
combi(cnt+1, ans)
ans.pop()
combi(cnt+1, ans)
combi(0,[])
print(min(result))
- 접근방식: 조합으로 모든 경우의 수 돌려서 최소값 출력
- 느낀점: 순열, 조합 구현해서 쓰는 거 잊지말기
'자료구조, 알고리즘 > 브루트포스' 카테고리의 다른 글
[백준] 1436 영화감독 숌(브루트포스) - Python (0) | 2023.04.14 |
---|---|
[백준] 10974 모든 순열(브루트포스) - Python (0) | 2023.04.05 |
[백준] 2309 일곱 난쟁이(브루트포) - Python (0) | 2023.03.04 |