[김태원 알고리즘] 최대점수 구하기 (DFS)
사용 언어: Python3
문제
풀이
내 풀이
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)
- 정답!
- 복잡한 예제까지 통과한다.
💛 개인 공부 기록용 블로그입니다. 👻