개발일지/Algorithm

백준 - 14501 퇴사 [브루트포스]

E-room 2023. 10. 7. 13:50
728x90

 

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

 

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. 전체 코드

https://github.com/Ksiyeong/Algorithm/tree/main/%EB%B0%B1%EC%A4%80/Silver/14501.%E2%80%85%ED%87%B4%EC%82%AC

728x90