본문 바로가기
코딩 테스트 연습

[알고리즘] 프로그래머스 - 피로도

by 코드뭉치 2023. 6. 5.

https://school.programmers.co.kr/learn/courses/30/lessons/87946
피로도

1. 구해야 하는 것
    최대 탐험 가능한 던전의 수
2. 1을 구하기 위해 필요한 것
    던전 탐험의 우선순위를 구한다?
    모든 탐색 경우의 수를 구한다.
        - itertools의 permutations

 

permutations를 사용해서 모든 경우의 수에 대해서 계산해주는 방법

피로도와 비교해서 입장 가능한 던전이라면, 소모피로도를 빼주는 방식으로

각각의 경우에 대해서 몇개의 던전을 갈 수 있는지 계산해서, 가장 많은 던전을 돈 경우의 던전 수를 return해준다

from itertools import permutations as p
def solution(k, dungeons):
    answer = 0
    for i in p(dungeons, len(dungeons)):
        fatigue = k
        cnt = 0
        for a in i:
            if fatigue >= a[0]:
                fatigue -= a[1]
                cnt += 1
        answer = cnt if cnt > answer else answer
    return answer

 

댓글