강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김용민님의 프로필 이미지
김용민

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

2. 휴가(DFS)

휴가 DFS 문제 질문

작성

·

398

0

def DFS(L, sum):
    global res
    if L == n+1:
        if res < sum:
            res = sum
    else:
        # 상담을 한다고 했을떄 L번쨰 상담을 한다고 했을떄
        if L + T[L] <= n+1:
            DFS(T[L]+L, sum + P[L])
            DFS(L+1, sum)


if __name__ == "__main__":
    n = int(input())
    T = list()
    P = list()
    for i in range(n):
        a, b = map(int, input().split())
        T.append(a)
        P.append(b)
    res = -2147000000
    T.insert(0, 0)
    P.insert(0, 0)
    DFS(1, 0)
    print(res)

제가 구현할떄 else 문에 if L + T[L] <= n+1: 이라는 코드를 작성하지 않아도 정상적으로 코드가 실행했습니다. 이 if 문 같은 경우에는 위의 else 문에서 다 해결해주는 부분이 아닌가 싶어서 저는 작성하지 않았습니다. 혹시 if L != n+1 하고 if L + T[L] <= n+1: 하고 다른게 있을까요?

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

if L + T[L] <= n+1: 을 하지 않은 본인 코드를 보여주세요. 질문이 이해가 가지 않습니다.

김용민님의 프로필 이미지
김용민

작성한 질문수

질문하기