87946. 피로도

2025. 4. 21. 22:07·Algorithm/Programmers

문제

https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=java

제한사항

풀이

import java.util.*;

class Solution {
    static int answer = -1;
    public int solution(int k, int[][] dungeons) {
        
        int n =dungeons.length;
        
        
        boolean[] visited = new boolean[n];
        dfs(dungeons, k, 0, visited, 0);
        return answer;
    }
    
    void dfs(int[][] dungeons, int k, int offset, boolean[] visited, int result) {
    
        
        for(int i = 0 ; i<dungeons.length; i++) {
            if(visited[i] || k < dungeons[i][0]) continue; 
            
            visited[i] = true;
            dfs(dungeons, k-dungeons[i][1], i, visited, result+1);
            visited[i] = false;
        }
        
        answer = Math.max(result, answer);
    }
}

회고

입력값이 자연수이고, 값의 범위가 작아서 그리디 알고리즘을 예상했는데 생각보다 단순했다. dfs를 활용한 백트래킹을 통해 해결할 수 있었다. k가 최소 필요 소모도보다 작으면 가지치기를 했다.

'Algorithm > Programmers' 카테고리의 다른 글

92342. 양궁대회  (0) 2025.05.08
42898. 등굣길  (0) 2025.04.09
12927. 야근 지수  (0) 2025.04.04
42884. 단속 카메라  (0) 2025.04.04
178870. 연속된 부분 수열의 합  (0) 2025.04.01
'Algorithm/Programmers' 카테고리의 다른 글
  • 92342. 양궁대회
  • 42898. 등굣길
  • 12927. 야근 지수
  • 42884. 단속 카메라
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Reorder List
    rotting oranges
    clone graph
    pacific atlantic water flow
    트랜잭션
    lower bounded wildcards
    minimum number of arrows to burst balloons
    BFS
    AuthenticationSuccessHandler
    LinkedList
    Thread
    운영체제
    OS
    @JsonNaming
    디자인 패턴
    fcfs
    Climbing Stairs
    추상화 클래스
    제네릭
    Generic
    wildcards
    JSCode
    Process
    runner 기법
    algorithm
    Oauth2
    socar
    RR
    @JsonProperty
    준영속 엔티티
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
87946. 피로도
상단으로

티스토리툴바