코딩테스트 연습/프로그래머스

[Python - 프로그래머스] 코딩테스트 연습 > 완전탐색 > 피로도

슈퍼짱짱 2023. 1. 25. 12:54
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/87946

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

Solution

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import itertools
def solution(k, dungeons):
    li = list(itertools.permutations(dungeons))
    # print(li)
    
    cnt = list()
    for i in range(len(li)) :
        c = 0
        k_ = k
        for j in li[i] :
            if k_ < j[0] :
                break
            else :
                k_ -= j[1]
                c += 1
        cnt.append(c)
    
    return max(cnt)
cs

 

itertools 패키지에 있는 permutations를 활용하여 모든 가능한 조합을 찾는다.

예로 주어진 dungeons에 대한 permutations 결과는 다음과 같다.

 

 

그리고 모든 경우의 수에 대해 순서대로 몇 번까지 탐험 가능한지 확인한다.

마지막으로 가장 max값을 return한다.

 

반응형