[백준] 2961번 도영이가 만든 맛있는 음식

거북이·2023년 1월 28일
0

백준[실버2]

목록 보기
35/81
post-thumbnail

💡문제접근

  • 누적 합, 누적 곱 개념을 이용해서 접근했는데 이 방법은 모든 재료를 다 사용하는 경우라면 해결이 되는데 일부 재료를 사용하는 경우라면 되게 까다로워져서 결국 포기했다.
  • 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

0개의 댓글