문제 분석
- 재료 n개
- 각 재료의 신맛 S, 쓴맛 B
- 신맛 : 사용한 재료의 신맛의 곱
- 쓴맛 : 사용한 재료의 쓴맛의 곱
- 적어도 하나의 재료 사용
- 신맛과 쓴맛의 차이가 가장 작은 요리를 만드는 프로그램
코드 설계
- 재료가 총 n개 주어졌을 때
- 1~n개의 재료를 뽑고 그때의 신맛과 쓴맛을 구한뒤, 최소 차 구하기
- 뽑을 때는 중복 x, 순서 x : 조합 Combinations
정답 코드
import sys
input = sys.stdin.readline
from itertools import combinations
n = int(input())
taste = [list(map(int, input().split())) for _ in range(n)]
min_gap = float('inf')
for i in range(1, n+1) : # 1~n개까지 -> i
for com in combinations(taste, i) : # 여러 재료 중 i개 선택
sour = 1
bitter = 0
for k in range(len(com)): # 선택된 재료들의 신맛과 쓴맛의 차이 구하기
s,b = com[k]
sour *= s
bitter += b
min_gap = min(min_gap, abs(sour-bitter))
print(min_gap)
'코딩 테스트 > 백준' 카테고리의 다른 글
[Python] 백준 10026 적록색약 (0) | 2025.02.11 |
---|---|
[Python] 백준 10814 나이순 정렬 (0) | 2025.02.11 |
[Python] 백준 17266 어두운 굴다리 (2) | 2025.02.11 |
[Python] 백준 15686 치킨 배달 (0) | 2025.02.11 |
[Python] 백준 11650 좌표 정렬하기 (0) | 2025.02.11 |