반응형
https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from itertools import permutations
def solution(k, dungeons):
results = []
for dungeon in permutations(dungeons, len(dungeons)):
max_ = k
result = 0
for lst in dungeon:
if max_ >= lst[0]:
max_ -= lst[1]
result +=1
else:
pass
results.append(result)
return max(results)
itertools의 permutations을 사용하여 나올 수 있는 모든 경우의 수를 구하여 문제를 해결하였습니다.
list = [1,2,3]
print(list(permutations(list, len(list))))
위의 코드를 실행하면
[(1,2,3),(1,3,2),(2,1,3)... ]의 모든 경우의 수를 반환해줍니다.
for dungeon in permutations(dungeons, len(dungeons)):
max_ = k
result = 0
for lst in dungeon:
if max_ >= lst[0]:
max_ -= lst[1]
result +=1
else:
pass
results.append(result)
따라서 모든 경우의 수를 확인하면서 주어진 조건에 만족할 경우에 result + 1을 하여 결과를 더해주고
나온 결과를 results에 담아주었습니다.
문제에서 주어진대로 최대 던전 수를 반환해야 하기 때문에 max(results)를 사용하여 문제를 해결하였습니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 가장 비싼 상품 구하기 MySQL (0) | 2022.11.26 |
---|---|
[코딩테스트] 프로그래머스 입양 시각 구하기(1) MySQL (0) | 2022.11.25 |
[코딩테스트] 프로그래머스 중성화 여부 파악하기 MySQL (0) | 2022.11.24 |
[코딩테스트] 프로그래머스 실패율 파이썬(Python) (0) | 2022.11.24 |
[코딩테스트] 프로그래머스 카펫 파이썬(Python) (0) | 2022.11.24 |