본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 파이썬 문제풀이 - 피로도

by whdgus928 2023. 5. 19.

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

 

프로그래머스

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

programmers.co.kr

 

내 풀이

1. dfs나 bfs를 통한 탐색으로 풀수도 있겠지만 배열의 순서에 따라서도 결과가 다르기 때문에 순열을 사용했다

2. 순열을 사용해서 던전을 들어가는 모든 경우의 수를 뽑았다

3. 모든 경우의 수를 탐색하여 들어갈수있으면 +1을 하고 최대 던전 수 보다 크다면 교체했다 

from itertools import permutations

def solution(k, dungeons):
    answer = -111
    per=list(permutations(dungeons,len(dungeons)))
    for i in per:
        cnt=0
        energy=k
        for j in i:
            if energy>=j[0]:
                energy-=j[1]
                cnt+=1
        if cnt>answer:
            answer=cnt
    return answer

 

배운 점

1. 배열의 크기가 작기 때문에 완전탐색을 사용할 수 있었다

반응형

댓글