728x90
1. 문제 요약
스케줄이 주어지고 해당 스케줄에서 가장 많은 수익을 낼 수 있는 조합을 구하시오
2. 접근 방법
- 재귀함수를 이용하여 모든 조합을 계산합니다.
- 그중 가장 많은 수익을 낸 조합을 출력합니다.
3. 파이썬
def solution(index:int, p:int):
global P
if index == N:
P = max(P, p)
return
elif index < N:
solution(index+TP[index][0],p+TP[index][1]) # 일을 하거나
solution(index+1, p) # 하지 않거나
4. 자바
static private void recursive(int index, int money) {
if (index == n) {
MONEY = Math.max(MONEY, money);
return;
} else if (index < n) {
recursive(index + schedule[index][0], money + schedule[index][1]);
recursive(index + 1, money);
}
}
5. 전체 코드
728x90
'개발일지 > Algorithm' 카테고리의 다른 글
백준 - 11726 2×n 타일링 [DP] (1) | 2023.10.12 |
---|---|
백준 - 12865 평범한 배낭 [DP][탑다운][바텀업] (1) | 2023.10.10 |
백준 - 19942 다이어트 [백트래킹] (1) | 2023.10.06 |
백준 - 2961 도영이가 만든 맛있는 음식 [백트래킹] (0) | 2023.10.06 |
백준 - 15656 N과 M (7) [백트래킹] (0) | 2023.09.28 |