Skip to content

Commit b70bbae

Browse files
committed
[level 2] Title: 피로도, Time: 4.88 ms, Memory: 76.1 MB -BaekjoonHub
1 parent b2f6190 commit b70bbae

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

프로그래머스/2/87946. 피로도/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 성능 요약
66

7-
메모리: 84.7 MB, 시간: 4.78 ms
7+
메모리: 76.1 MB, 시간: 4.88 ms
88

99
### 구분
1010

@@ -16,7 +16,7 @@
1616

1717
### 제출 일자
1818

19-
2025년 04월 28일 22:11:17
19+
2025년 09월 05일 10:41:29
2020

2121
### 문제 설명
2222

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
1+
import java.util.*;
12
class Solution {
2-
public static int answer = 0;
3-
3+
boolean[] visited;
4+
int max = 0;
45
public int solution(int k, int[][] dungeons) {
5-
boolean[] visited = new boolean[dungeons.length]; // 방문 여부
6-
dfs(k,dungeons,visited,0);
7-
return answer;
6+
visited = new boolean[dungeons.length];
7+
8+
dfs(k,dungeons,0);
9+
return max;
810
}
9-
10-
public void dfs(int k, int[][] dungeons, boolean[] visited, int count) {
11-
// 결론
12-
answer = Math.max(count,answer);
13-
14-
for(int i = 0; i < dungeons.length; i++){
15-
// 방문한적 없고, k가 더 클때
16-
if(!visited[i] && dungeons[i][0] <= k){
11+
12+
void dfs(int k, int[][] dungeons,int cnt){
13+
14+
for(int i = 0 ; i< dungeons.length; i++){
15+
int minK = dungeons[i][0]; // 최소 필요도
16+
int requestK = dungeons[i][1]; // 요구 피로도
17+
18+
// 방문한 적 없고, 요구 피로도를 만족
19+
if(!visited[i] && k >= minK){
1720
visited[i] = true; // 방문 처리
18-
dfs(k - dungeons[i][1],dungeons,visited,count+1);
19-
visited[i] = false; // 백트래킹
20-
}
21-
21+
dfs(k - requestK,dungeons,cnt+1);
22+
visited[i] = false; // 백트래킹
23+
}
2224
}
23-
25+
26+
if(max < cnt) max = cnt;
2427
}
2528
}

0 commit comments

Comments
 (0)