본문 바로가기
Algorithm/프로그래머스

[프로그래머스] Lv2 - 피로도 (파이썬)

by 2HS 2022. 4. 6.
 

코딩테스트 연습 - 피로도

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

programmers.co.kr

 

from itertools import permutations as perm


def solution(k, dungeons):
    answer = 0
    for order in list(perm(dungeons, len(dungeons))):
        answer = max(answer, enter_dungeons(order, k))
        if answer == len(dungeons):
            break
    return answer


def enter_dungeons(arr, now):
    enter = 0
    for require, use in arr:
        if require <= now:
            now -= use
            enter += 1
    return enter

 

풀이
1. 각 던전의 순서(permutations를 이용)를 모두 구한다.
2. 각 순서마다 enter_dungeons (앞에서부터 던전을 통과하면서 총 통과 가능한 던전 개수 반환)
3. anwer를 최댓값으로 업데이트
4. anwer가 던전의 개수와 같아진다면 break
5. anwer 반환