[프로그래머스 LV2] 피로도

Junyoung Park·2021년 12월 26일
0

코딩테스트

목록 보기
24/631

1. 문제 설명

피로도

2. 문제 분석

현재 피로도 K가 지금 진입하려던 던전이 요구하는 최소 피로도보다 높을 때에만 진입할 수 있으므로, 모든 던전을 입장하는 경우의 수를 permutations를 통해 구해 놓고 break를 통해 제어했다. cur_k를 통해 local 피로도를 카운트했다. 처음에는 queue를 통해 풀어볼 생각도 했는데, 이 경우에는 지금까지 들어왔던 던전의 수뿐만 아니라 종류 역시 queue 외부에서 조정해야 한다는 생각이 들어서 경우의 수 자체를 구해놓고 시작했다.

3. 나의 풀이

from itertools import permutations
def solution(k, dungeons):
    ways = list(permutations(dungeons, len(dungeons)))
    result = []
    for way in ways:
        total = 0
        cur_k = k
        tired = False
        for dungeon in way:
            if cur_k >= dungeon[0]:
                cur_k -= dungeon[1]
                total += 1
            else:
                tired = True
                result.append(total)
                break
        if not tired: result.append(total)
        
    return max(result)
profile
JUST DO IT

0개의 댓글