Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.2 피로도 [Python, 파이썬] 본문
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/87946
- 완전 탐색
- 모듈 itertools 의 permutations(순열) 를 사용해서 풀이
- 순열이란 n개 중 서로다른 r개를 선택하고 순서를 고려하는 것을 말한다.
from itertools import permutations
def solution(k, dungeons):
all = [i for i in permutations(dungeons,len(dungeons))] # 순열 구하기
ok = [] # 조합별로 탐험 횟수 담을 리스트
for i in range(len(all)):
fatigue = k # 피로도
count = 0 # 탐험 횟수
for j in all[i]:
if fatigue >= j[0]: # 최소 피로도 만족하면
fatigue -= j[1] # 소모 피로도만큼 차감
count += 1 # 탐험 횟수 증가
elif fatigue < j[0]: # 최소 피로도 부족하면
break # 반복 종료
ok.append(count) # 하나의 조합마다 탐험 횟수를 저장
return max(ok) # 가장 많은 탐험 횟수 리턴
print(solution(80, [[80,20],[50,40],[30,10]]))
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.1 숫자 문자열과 영단어 [Python, 파이썬] KAKAO (0) | 2023.09.22 |
---|---|
[프로그래머스] Lv.3 헤비 유저가 소유한 장소 [Oracle, 오라클] (0) | 2023.09.22 |
[프로그래머스] Lv.2 땅따먹기 [Python, 파이썬] (0) | 2023.09.03 |
[프로그래머스] Lv.3 이중 우선순위 큐 [Python, 파이썬] (0) | 2023.09.01 |
[프로그래머스] Lv.3 디스크 컨트롤러 [Python, 파이썬] (0) | 2023.09.01 |
Comments