SWEA 5215. 햄버거 다이어트

2024. 3. 7. 21:19코딩 테스트/SWEA

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWT-lPB6dHUDFAVT

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

전체 코드

class Solution:
    def __init__(self):
        self.max_score = 0

    def do(self, materials, limit_cal):
        # (점수, 칼로리)
        def dfs(path, start):
            score, cal = path
            if cal < limit_cal and score > self.max_score:
                self.max_score = score

            for i in range(start, len(materials)):
                (add_score, add_cal) = materials[i]
                (new_score, new_cal) = score + add_score, cal + add_cal
                dfs((new_score, new_cal), i + 1)

        dfs((0, 0), 0)

        return self.max_score

# --- submit ---
T = int(input())
for test_case in range(1, T + 1):
    n, l = map(int, input().split())
    materials = []
    for _ in range(n):
        materials.append(tuple(map(int, input().split())))

    result = Solution().do(materials, l)
    print(f'#{test_case} {result}')

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

SWEA 5658. 보물상자 비밀번호  (0) 2024.03.18
SWEA 13736. 사탕 분배  (1) 2024.03.18
SWEA 1217. 거듭제곱  (0) 2024.03.07
SWEA 2817. 부분 수열의 합  (0) 2024.03.07
SWEA 1979. 어디에 단어가 들어갈 수 있을까?  (0) 2024.03.07