문제: https://school.programmers.co.kr/learn/courses/30/lessons/87946
최대 값을 찾기 위해 리스트에 넣어야지 뭉충아....ㅠㅠ
def perm(arr,n):
result = []
if n > len(arr):
return result
if n == 1:
for i in arr:
result.append([i])
elif n > 1:
for i in range(len(arr)):
ans = [i for i in arr]
ans.remove(arr[i])
for p in perm(ans, n-1):
result.append([arr[i]]+p)
return result
def solution(k, dungeons):
# k: 현재 피로도
# dungeons = ["최소 필요 피로도", "소모 피로도"]
answer = -1
p = []
res = []
# 모든 경우의 수 도출
for cnt in range(1, len(dungeons)+1):
p += (perm(dungeons,cnt))
cnt_tmp = []
for case in p:
tmp_k = k
cnt = 0
# print('현재 확인 중인 경우의 수',case)
for need_k in range(len(case)):
need_at_least_k = case[need_k][0]
consume_k = case[need_k][1]
# 입장 조건 맞으면 피로도 소모
if (tmp_k >= (need_at_least_k)) and (tmp_k-consume_k) >= 0 :
# print('현재 피로도',tmp_k, '삭감 후 피로도',tmp_k-consume_k)
tmp_k -= consume_k
cnt += 1
if len(case) == cnt:
print(cnt)
cnt_tmp.append(cnt)
# print("가능한 경우")
cnt = 0
break
return max(cnt_tmp)
반응형
'공부 서랍장 > 알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 카펫 python (1) | 2022.09.19 |
---|---|
[프로그래머스] 소수 찾기 python (0) | 2022.09.18 |
[알고리즘 필수 기법] 조합, 순열 (0) | 2022.09.18 |
[프로그래머스] 모음사전 python (0) | 2022.09.18 |
[프로그래머스] H-Index python (0) | 2022.09.18 |