문제
풀이
- 주어진 던전 list의 모든 경우의 수로 탐색을 해서 최대 던전 수를 구해야하는 문제로
완전탐색
알고리즘 문제이다.
- 순열을 이용해 모든 경우의 수를 구한 뒤, 반복문으로 순차적으로 조회하며 max값을 반환하여 구하였다.
코드
from itertools import permutations
def solution(k: int, dungeons: list) -> int:
permu, result = list(permutations(range(len(dungeons)))), 0
for x in permu:
piro, pre_result = k, 0
for y in x:
if piro >= dungeons[y][0]:
piro -= dungeons[y][1]
pre_result += 1
else:
break
result = max(result, pre_result)
return result
if __name__ == '__main__':
print(solution(80, [[80, 20], [50, 40], [30, 10]]))
print(solution(40, [[40, 20], [10, 10], [10, 10], [10, 10], [10, 10]]))
결과
출처 & 깃허브
programmers 피로도
github