📚 문제
✏️ 메모
1. 던전이 몇개가 있던지 간에, 모든 던전을 방문하는 경우의 수를 다 따져서
2. 최대로 탐험할 수 있는 던전의 수를 파악해서 return 해주어야 함.
3. 이때 초기 채력과 각 던전의 요구 체력, 체력 소모를 확인하여, 체력을 최대한 아껴 가장 많은 던전을 파악해야 함.
💡 DFS
- 깊이 우선 탐색. 그래프 탐색 기법 중 하나
- 루트 노트에서 시작해서 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법
- 모든 노드를 방문하고자 하는 경우에 선택함
- 알고리즘을 구현할 때에는 어떤 노드를 방문했는지에 대한 여부를 반드시 확인해 주어야 한다.
(검사하지 않을 경우 무한 루프에 빠질 수 있다.)
- 재귀 함수와 스택 자료 구조를 이용하여 구현할 수 있다.
(재귀함수 또한 후입 선출(LIFO) 의 성격을 갖는다 )
[Algorithm] DFS (깊이 우선 탐색)
DFS (Depth - First Search) 깊이 우선 탐색 (DFS) 는 그래프 탐색 기법 중 하나이다. 간단히 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기의 최대 깊이까지 탐색 후, 다른 분기로 이동한 뒤 탐색을
jnsodevelop.tistory.com
[자료구조] 스택 (STACK), 큐(QUEUE) 개념/비교 /활용 예시
[자료구조] 스택 (STACK), 큐(QUEUE) 개념/비교 /활용 예시/ 실생활 활용 스택 (STACK)이란? 📌 스택의 개념 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것
devuna.tistory.com
💡 Math.max()
public static int max(int a, int b)
Java.lang.Math.max() 메서드
Java Math 클래스에는 수학적 계산을 수행하는 데 필요한 메서드가 포함되어 있습니다. 우리가 필요로 하는 매우 일반적인 계산 중 하나는 찾는 것입니다 . 메서드를 도입했습니다 . 메서드 에 대
codegym.cc
🔎 문제해결
class Solution {
// 전역변수 선언
private static int max = 0;
public int solution(int k, int[][] dungeons) {
// 각 던전 방문에 대한 boolean 값을 담을 배열 이므로 크기는 던전 배열의 Length
boolean[] visited = new boolean[dungeons.length];
// 던전 탐험 시작 시 초기화.
// 탐색할 배열, 방문 유무 확인 배열, 현재 피로도 k, 탐험한 던전 수 count 를 매개변수로 주어야 함.
dfs(dungeons, visited, k, 0);
return max;
}
private static void dfs (int[][]dungeons, boolean[] visited, int k, int count) {
// 최대 탐험 던전 수 계산
max = Math.max(max , count);
for(int i = 0; i < dungeons.length; i ++ ) {
// 방문하지 않았고(visited 가 false ) 피로도(k)가
// 해당 던전의 최소필요 피로도(dungeons[i][0]) 보다 크면 방문.
if (!visited[i] && dungeons[i][0] <= k ) {
visited[i] = true;
// 체력을 깍고 방문한 던전 수 증가 시킨 뒤에, 그 다음 던전 방문.
dfs(dungeons, visited, k - dungeons[i][1], count + 1);
// 방문을 다 했으면, 백트랙킹
visited[i] = false;
}
}
}
}
- 전역변수 선언, static 선언에 대한 궁금증이 생겼다.. 예전에 공부했던 걸 다 까먹은 듯. 보충이 필요함.
'Coding Test' 카테고리의 다른 글
[Coding Test] 프로그래머스 1단계 - 소수 만들기 (0) | 2024.11.07 |
---|---|
[Coding Test] 프로그래머스 1단계 - 모의고사 (0) | 2024.11.07 |
[Coding Test] 프로그래머스 1단계 - 기사단원의 무기 (0) | 2024.10.31 |
[Coding Test] 프로그래머스 1단계 - 추억 점수 (0) | 2024.10.28 |
[Coding Test] 프로그래머스 1단계 - 푸드 파이트 대회 (0) | 2024.10.24 |