세용용용용 2023. 7. 11. 18:16

이거슨 순열 문제

- 주어진 요소들을 모든 가능한 순서로 배열한 결과를 말합니다. 파이썬의 itertools 모듈에서 permutations 함수를 제공하며, 이를 사용하여 순열을 생성할 수 있습니다.

from itertools import permutations
def solution(k, dungeons):
    answer = 0

    #던전 경우의 수 순열을 돌린다
    for i in permutations(dungeons):
        # 던전참여할수 있는 횟수 카운트
        dungeons_count = 0
        #피로도
        pirodo = k

        # 남은 피로도 보다 던전입장요구 피로도가 크면 브레이크
        for j in i:
            if j[0] <= pirodo:
                dungeons_count+=1
                pirodo -= j[1]
            else:
                break
       
        #이전 던전 입장 횟부보다 더 많으면 치환
        if dungeons_count > answer:
            answer = dungeons_count

    #print(answer)
    return answer
solution(80,[[80,20],[50,40],[30,10]])