오구.cpp 2023. 1. 3. 21:59
반응형

 

[코딩테스트 고득점 KIT - 완전탐색]

 

 

순열을 이용하여 모든 피로도 소모 경우의 수를 계산해준다.

 

소모되어 줄어든 피로도를 HP 변수에 담으며,

남은 피로도인 HP가 탐험할 던전의 "최소 필요 피로도" 보다 높으면 피로도를 소모하여 탐험한다.

탐험 후 HP에서 소모한 피로도만큼 줄여준다.

 

 

 

from itertools import permutations
def solution(k, dungeons):
    answer = 0
    ## permutations 순열 라이브러리
    for dungeon in list(permutations(dungeons,len(dungeons))):
    	# 탐험한 던전의 수
        result = 0
        # 남은 피로도
        HP = k
        
        for root in dungeon:
        	# 요구사항
            if root[0] <= HP:
                result += 1
                HP -= root[1]
            # 결과
            if answer < result:
                answer = result
                
    return answer
반응형