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
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

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

티스토리툴바