본문 바로가기
프로그래머스/2단계

(Python/LV2) 피로도

by windy7271 2022. 10. 2.
728x90
반응형

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/87946

 

프로그래머스

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

programmers.co.kr

풀이:


from itertools import permutations
def solution(k, dungeons):
    # 방문할 순서 조합 만들기
    numbers = list(x for x in range(0,len(dungeons)))
    cases = permutations(numbers,len(dungeons))

    results = []
    
    for case in cases:
        count, now = 0, k
        # 인덱스를 불러와서
        for idx in case:
            # 최소, 소모 피로도
            least, req = dungeons[idx][0], dungeons[idx][1]
            # 최소 피로도 이상 보유 중
            if now >= least:
                now -= req
                count += 1
            else: break
        results.append(count)
    return max(results)
print(solution(80, [[80, 20], [50, 40], [30, 10]]))

 

solution = lambda k, d: max([solution(k - u, d[:i] + d[i+1:]) + 1 for i, (m, u) in enumerate(d) if k >= m] or [0])

다른사람의 말도 안되는 코드,,

반응형

댓글