본문 바로가기

스터디 1일 1커밋

240331 [BOJ/백준] 16493. 최대 페이지 수

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

 

16493번: 최대 페이지 수

첫째 줄에 N(1 ≤ N ≤ 200)과 챕터의 수 M(1 ≤ M ≤ 20)이 주어진다. 둘째 줄부터 각 챕터 당 읽는데 소요되는 일 수와 페이지 수가 주어진다. 소요되는 일 수는 20보다 작거나 같은 자연수이고, 페이

www.acmicpc.net


나의 코드

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

def maxpage(level, day, sum_page):
    if day <= N:
        ans.append(sum_page)


    if level == M:
        return

    maxpage(level+1, day+arr[level][0], sum_page+arr[level][1])
    maxpage(level+1, day, sum_page)

ans = []
maxpage(0, 0, 0)
print(max(ans))

 

결과


재귀로 모든 경우의 수를 찾아보며 조건에 맞는 값을 구할 수 있었다.