티스토리 뷰

반응형

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

 

코딩테스트 연습 - 피로도

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던

programmers.co.kr

 


⊙ 문제

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

조합을 사용해줬다.

문제를 보고 바로 조합을 사용해야겠다고 생각을 했다.

 

그리고 해당 조합에 대해 count 메서드를 돌려주고 값을 return 해준다.

count 메서드는 minimum 변수를 기준으로 돌아간다.

카운팅 된 값이 최종 return 값이다.

 

그 값을 새로 만든 배열에 저장해주고 다 돌렸을 때 그 배열에서 가장 큰 값을 최종 return 해주면 된다.

 


 

⊙ 문제 풀이

 

from itertools import permutations


def count(k, dungeons):
    answer = 0
    for dungeon in dungeons:
        minimum, consume = dungeon
        if k < minimum:
            return answer
        k -= consume
        answer += 1
    return answer


def solution(k, dungeons):
    answer = []
    shuffled = permutations(dungeons, len(dungeons))

    for s in shuffled:
        answer.append(count(k, s))

    return max(answer)

⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함