최대 1 분 소요

사용 언어: Python3

문제

스크린샷 2023-05-09 오후 6 00 12

풀이

내 풀이

def DFS(idx, time, score): # idx: lst인덱스 # time: 문제 푸는데 걸린 시간 # scroe: 획득 점수
    global mx
    if time > M:
        return
    if idx == N:
        mx = max(mx, score)
    else:
        DFS(idx+1, time+lst[idx][1], score+lst[idx][0]) # ✅ idx번째 문제를 푼 경우
        DFS(idx+1, time, score) # ✅ idx번째 문제를 풀지 않은 경우

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

mx = -1 # 최대 점수
DFS(0, 0, 0)
print(mx)
  • 정답!
    • 복잡한 예제까지 통과한다.


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기