기록

백준_2961_도영이가 만든 맛있는 음식 본문

코딩테스트/python

백준_2961_도영이가 만든 맛있는 음식

youngyin 2022. 4. 22. 23:09

문제

https://www.acmicpc.net/problem/2961

 

2961번: 도영이가 만든 맛있는 음식

첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은

www.acmicpc.net

풀이

1) dfs

해당 음식을 사용할 때와 사용하지 않을 때를 나누어서, 모든 경우를 탐색한다.

코드

import sys
sys.setrecursionlimit(10**6)

N = int(input())
arr = [list(map(int, input().split())) for i in range(N)]

def dfs(p, sour, bitter) : 
    if p+1>=len(arr) : return abs(bitter-sour)
    
    s, b = arr[p+1]
    return min(dfs(p+1, sour*s, bitter+b), # use
               dfs(p+1, sour, bitter)) # not use

ans = float('INF')
for i in range(len(arr)) : 
    ans = min(ans, dfs(i, *arr[i])) # use ith
print(ans)

'코딩테스트 > python' 카테고리의 다른 글

백준_15661_링크와 스타트  (0) 2022.05.03
백준_10830_행렬 제곱  (0) 2022.05.03
백준_1022_소용돌이 예쁘게 출력하기  (0) 2022.04.19
백준_2208_보석 줍기  (0) 2022.04.07
백준_20040_사이클 게임  (0) 2022.04.03
Comments