[프로그래머스] 피로도

2026. 4. 9. 14:59·Algorithm

문제

 

 

풀이

완전 탐색 알고리즘을 구상해야겠다고 생각이 들어서, 이중 for문을 사용해 해결했다. break를 활용해 피로도가 부족하면 바로 도는걸 중지하도록 하여 시간을 조금 줄여봤다.

from itertools import permutations

def solution(k, dungeons):
    #0 ~ 던전의 개수 - 1까지 모든 값을 가지는 순열 모두 반환
    orders = list(permutations(range(len(dungeons))))
    
    
    max_dungeon_cnt = 0
    #모든 던전 가는 경우의 수 순회
    for order in orders :
        my_tired = k
        current_dungeon_cnt = 0
        
        #던전 돌기
        for dungeon_idx in order :
            if my_tired >= dungeons[dungeon_idx][0] :
                current_dungeon_cnt += 1
                my_tired -= dungeons[dungeon_idx][1]
            else:
                break
        #다 돌았으면 max_dungeon count 갱신
        max_dungeon_cnt = max(max_dungeon_cnt, current_dungeon_cnt)
    
    return max_dungeon_cnt

 

풀이 로직

1. python 내장 메소드인 permutations 활용하여 0 ~ 던전의 개수 -1 까지 모든 경우의수 순열을 뽑는다

2. 던전을 가는 모든 경우의 수 리스트(orders)를 순회하기 시작한다(order 튜플의 값들은 던전 순서)

3. order에 있는 dungeon의 인덱스들을 순서대로 도는데, 던전 입장이 가능하면 현재 cnt를 + 1 해주고, 입장이 불가하면 break한다.

4. 마지막 까지 던전을 돌던, 피로도가 부족해서 못돌던 간에 max_dungeon_cnt를 갱신해준다

 

 

※permutations 메소드

itertools 모듈의 함수로, 가능한 모든 순열을 만들어준다.

사용법 : 

from itertools import permutations

permutations(iterable, r)

 

iterable : 순열을 만들 대상(리스트, range 등)

r : 뽑을 개수, 생략 시 전체 길이로 순열 생성

 

 

Github Link  ←

 

BackJoon-Programmers/프로그래머스/2/87946. 피로도 at main · jaeheonki/BackJoon-Programmers

Contribute to jaeheonki/BackJoon-Programmers development by creating an account on GitHub.

github.com

 

'Algorithm' 카테고리의 다른 글

[프로그래머스] 오픈채팅방  (0) 2026.04.12
[프로그래머스] 프로세스  (0) 2026.04.09
[프로그래머스] 주식가격  (0) 2026.04.09
[프로그래머스] 기능개발  (2) 2026.04.09
[프로그래머스] 귤 고르기  (1) 2026.04.01
'Algorithm' 카테고리의 다른 글
  • [프로그래머스] 오픈채팅방
  • [프로그래머스] 프로세스
  • [프로그래머스] 주식가격
  • [프로그래머스] 기능개발
uj07096
uj07096
개발블로그 시작 !
  • uj07096
    김재헌 님의 블로그
    uj07096
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Algorithm
      • My IT
        • Article
        • Codes
      • TIL
      • My Projects N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DenseNet
    PyTorch
    til
    데이터전처리
    Tensor
    프로그래머스
    convolution
    YOLO
    Algorithm
    LeetCode
    EDA
    이상치
    코테
    kaggle
    optuna
    파이썬
    autoencoder
    딥러닝
    코딩테스트
    transfer learning
    python
    ResNet
    Stack
    Faster R-CNN
    머신러닝
    EfficientNet
    LSTM
    GAN
    AI
    DeepLearning
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
uj07096
[프로그래머스] 피로도
상단으로

티스토리툴바