본문 바로가기

프로그래머스 퀴즈(Python)/level 2

23.02.09 파이썬 코딩 퀴즈#142 피로도(프로그래머스 스쿨)

이번 문제는 피로도 문제이다.

던전을 탐험하기 위해서는 피로도가 필요한데, 각 던전마다 최소 필요 피로도와 소모 피로도 값이 존재한다.

즉 최소 필요 소모도를 만족해야지만 해당 던전에 입장 가능하며, 던전 탐험을 마치게 되면 소모 피로도 만큼 현재 피로도가 감소한다.

서로 다른 던전의 ['최소 필요 피로도','소모 피로도']가 배열로 주어졌을 때, 유저가 탐험할 수 있는 최대 던전의 수를 return 해야 한다.

설명이 굉장히 길지만, 단순하게 생각해서 가장 많이 탐험 할 수 있는 조건에 맞춰서 피로도를 사용하여야 한다.

위 입출력 예에서 살펴보면, 만약 피로도 소모가 가장 낮은 3번째 [30,10] 던전을 돌게 되면 피로도가 70이 된다.

이 때, 첫번째 던전은 필요 피로도 제한으로 인해 입장할 수 없다.

던전 탐색을 위해 permutations()를 이용하여 순서대로 조합된 순열 comb 를 만들고, 해당 comb를 돌면서 모든 값을 탐색하였다.

그리고 만약 소모된 피로도에 의해 다음 던전에 진입할 수 없다면, 바로 break로 탐색을 종료하고, 집계된 cnt와 answer을 비교해 더 큰 값으로 갱신시켜 주었다.

 

딱히 던전이 8개라 크게 효율성 문제에도 지장이 없고,  크게 복잡하지 않은 문제였다.