boj14501 - 퇴사
문제: 퇴사
당일에 일을 하냐 / 안하냐로 나누어
일을 하면 그 업무를 하는 시간과 비용을 더해 매개변수로 넘겨주고
일을 안하면 시간+1(다음날), 비용은 그대로 넘겨줌
dp로도 가능,,
import sys
answer =0
def dfs(tp, N, day, tmp_cost):
# 종료조건
if day == N:
global answer
answer = max(tmp_cost, answer)
# print(answer)
return
# day에 일하는 경우
if day + tp[day][0] <= N:
dfs(tp, N, day + tp[day][0], tmp_cost + tp[day][1])
# day에 일 안하는 경우 그냥 다음날로 넘어감
if day + 1 <= N:
dfs(tp, N, day+1, tmp_cost)
if __name__ == '__main__':
input = sys.stdin.readline
N = int(input())
tp = []
for i in range(N):
t, p = map(int, input().split())
tp.append([t,p])
dfs(tp, N ,0, 0)
print(answer)
참조: 풀이법
Author And Source
이 문제에 관하여(boj14501 - 퇴사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dust_potato/boj14501-퇴사저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)