💡문제접근
- 누적 합, 누적 곱 개념을 이용해서 접근했는데 이 방법은 모든 재료를 다 사용하는 경우라면 해결이 되는데 일부 재료를 사용하는 경우라면 되게 까다로워져서 결국 포기했다.
combinations
을 이용해 나올 수 있는 모든 조합을 확인해 신맛에서 쓴맛을 뺀 절댓값을 구해 최솟값을 구해준다.
💡코드
from itertools import combinations
arr = []
N = int(input().strip())
for _ in range(N):
arr.append(list(map(int, input().strip().split())))
com = []
for i in range(1, N+1):
com.append(combinations(arr, i))
sub = 10000000
for i in com:
for j in i:
sour = 1
bitter = 0
for s, b in j:
sour *= s
bitter += b
if sub > abs(sour - bitter):
sub = abs(sour - bitter)
print(sub)
💡소요시간 : 18m