https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
완전탐색 문제
return 조건을 만들기 위해 level을 사용하였고
현재피로도에 맞는 조건이라면 피로도를 깎으면서 +1 이 되게끔 하였다
마지막엔 최대 던전을 돈 횟수가 결과값으로 나오면 됨
def solution(k, dungeons):
used = [0]*len(dungeons)
Max = 0
def dfs(level, fatigue,ans):
nonlocal Max
if fatigue < 0:
return
if level ==len(dungeons):
Max = max(Max, ans)
return
for i in range(len(dungeons)):
if used[i] ==1: continue
used[i] = 1
if fatigue < dungeons[i][0]:
dfs(level+1, fatigue,ans)
used[i] = 0
else:
dfs(level+1, fatigue-dungeons[i][1], ans+1)
used[i] = 0
dfs(0,k,0)
return Max'Algorithm > programmers' 카테고리의 다른 글
| [파이썬]programmers: 스킬트리 (0) | 2023.03.05 |
|---|---|
| [파이썬]programmers: 주차 요금 계산 (1) | 2023.02.28 |
| [파이썬]programmers: 연속 부분 수열 합의 개수 (0) | 2023.02.22 |
| [파이썬]programmers: 귤 고르기 (1) | 2023.02.21 |
| [파이썬]programmers: 가장 큰 수 (0) | 2023.02.20 |
댓글