코테 문제 풀기
[프로그래머스] 피로도 _(파이썬 python)
silver님
2024. 7. 29. 15:57
문제
입출력 예
파이썬 라이브러리 itertools
itertools 라이브러리를 이용하면 조합과 순열을 쉽게 구할 수 있다.
itertools : 효율적인 루핑을 위한 이터레이터를 만드는 함수
조합형 이터레이터인
- combinations()
- combinations_with_replacement()
- product()
- permutations()
가 있다.
이 중에서도 permutations()에 대해 알아보자
permutations(iterable, r = None)
: iterable에서 원소 개수가 r개인 순열 뽑기
from itertools import permutations
l = ['A', 'B', 'C']
for i in permutations(l) :
print(i)
출력 결과 :
('A', 'B', 'C') ('A', 'C', 'B') ('B', 'A', 'C') ('B', 'C', 'A') ('C', 'A', 'B') ('C', 'B', 'A') '''
코드
여기서 힌트를 얻어 문제를 풀어야한다.
순열로 가능한 모든 순서를 구해서 돌려보고 갈 수 있는 던전수가 가장 큰 것을 리턴한다.
from itertools import permutations
def solution(k, dungeons):
answer = 0
for p in permutations(dungeons, len(dungeons)):
tmp = k
cnt = 0
for need, spend in p:
if tmp >= need:
tmp -= spend
cnt += 1
answer = max(answer, cnt)
return answer
728x90
반응형