코딩 테스트/프로그래머스

Lv2. 피로도

  • -
728x90
반응형

문제 보기 :  피로도

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제

  • 정답률 : 64%


작성 코드

from itertools import permutations
def solution(k, dungeons):
    dun = list(permutations(dungeons))
    answer = 0 ; aa = []    
    for d in dun :
        a = 0
        piro = k
        for i in d:
            if piro < i[0]:
                break
            elif piro >= i[0]:
                a += 1
                piro -= i[1]
        if answer < a:
            answer = a
        aa.append(a)
    return answer

풀이

permutations으로 모든 순열을 만든 다음, 통과 가능한 최대 갯수가 무엇인지를 찾도록 코드를 짰다..

이거 때문에 며칠을 쓴건지😿..? 생각보다 간단한 문제였다.

5000개인 리스트에 permutations을 적용한다해도 조건문으로 5000개까지 모두 돌아가지 않게 코드를 짜면 되는 것이었다.
다시 말해, 앞서 등장한
리스트들로 piro를 업데이트하고 다음 리스트를 사용해서 계산을 해야한다고 할 때 최소 필요 피로도(=i[0])보다 piro가 작다면 그냥 break하면 되는 것이다.

왜 이게 정답률이 60%대인건지 모르겠다고 생각했는데, 풀고보니 알 것도 같다..😆😆

320x100
728x90

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

Lv0. 평행  (1) 2024.10.06
Lv3. 기지국 설치  (0) 2024.10.04
Lv2. 두 큐 합 같게 만들기  (0) 2024.10.01
Lv2. 소수 찾기  (0) 2024.10.01
Lv2. 큰 수 만들기  (0) 2024.09.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.