프로그래머스 : 위클리 챌린지 - 12주차

2021. 10. 28. 18:31문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/87946

 

코딩테스트 연습 - 12주차

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던

programmers.co.kr

던전들의 개수가 최대 8개이기 때문에 단순하게 itertools의 permutations를 이용하면 된다.

방문 가능한 모든 경우의 수(던전의 순서)를 실행하면서 그 중 가장 많은 던전을 방문하는 경우의 방문 던전 개수를 리턴한다.

from itertools import permutations
def solution(k, dungeons):
    answer = -1
    n = len(dungeons)
    numbers = [i for i in range(n)]
    ways = list(permutations(numbers,n))

    for way in ways:
        result = 0
        now_power = k

        for i in way:
            min_power, power = dungeons[i]
            if min_power <= now_power:
                now_power -= power
                result += 1

        if result > answer:
            answer = result
    return answer