[programmers] νΌλ‘λ - Java
XXκ²μμ νΌλ‘λ μμ€ν
μμ μ μ κ° ννν μ μλ μ΅λ λμ μλ₯Ό λ°ννλ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄, κΉμ΄ μ°μ νμ(DFS)λ₯Ό μ¬μ©νλ μκ³ λ¦¬μ¦μ΄ μ μλμμ΅λλ€. κ° λμ μ "μ΅μ νμ νΌλ‘λ"μ "μλͺ¨ νΌλ‘λ"λ₯Ό κ³ λ €νμ¬, νμ¬ νΌλ‘λκ° μΆ©λΆνκ³ μμ§ νννμ§ μμ λμ μ νμνλ©°, νμμ΄ λλ λμ μ λ€μ νμνμ§ μμ μνλ‘ λ³κ²½ν©λλ€. μ΄ κ³Όμ μ λ°λ³΅νλ©° ννν λμ μ μ΅λ μλ₯Ό κ³μ°ν©λλ€.
Mar 20, 2024
νΌλ‘λ
λ¬Έμ μ€λͺ
XXκ²μμλ νΌλ‘λ μμ€ν
(0 μ΄μμ μ μλ‘ ννν©λλ€)μ΄ μμΌλ©°, μΌμ νΌλ‘λλ₯Ό μ¬μ©ν΄μ λμ μ ννν μ μμ΅λλ€. μ΄λ, κ° λμ λ§λ€ ννμ μμνκΈ° μν΄ νμν "μ΅μ νμ νΌλ‘λ"μ λμ ννμ λ§μ³€μ λ μλͺ¨λλ "μλͺ¨ νΌλ‘λ"κ° μμ΅λλ€. "μ΅μ νμ νΌλ‘λ"λ ν΄λΉ λμ μ νννκΈ° μν΄ κ°μ§κ³ μμ΄μΌ νλ μ΅μνμ νΌλ‘λλ₯Ό λνλ΄λ©°, "μλͺ¨ νΌλ‘λ"λ λμ μ ννν ν μλͺ¨λλ νΌλ‘λλ₯Ό λνλ
λλ€. μλ₯Ό λ€μ΄ "μ΅μ νμ νΌλ‘λ"κ° 80, "μλͺ¨ νΌλ‘λ"κ° 20μΈ λμ μ νννκΈ° μν΄μλ μ μ μ νμ¬ λ¨μ νΌλ‘λλ 80 μ΄μ μ΄μ΄μΌ νλ©°, λμ μ ννν νμλ νΌλ‘λ 20μ΄ μλͺ¨λ©λλ€.
μ΄ κ²μμλ ν루μ ν λ²μ© ννν μ μλ λμ μ΄ μ¬λ¬κ° μλλ°, ν μ μ κ° μ€λ μ΄ λμ λ€μ μ΅λν λ§μ΄ νννλ € ν©λλ€. μ μ μ νμ¬ νΌλ‘λ kμ κ° λμ λ³ "μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"κ° λ΄κΈ΄ 2μ°¨μ λ°°μ΄ dungeons κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ μ κ° ννν μ μλ μ΅λ λμ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- kλ 1 μ΄μ 5,000 μ΄νμΈ μμ°μμ λλ€.
- dungeonsμ μΈλ‘(ν) κΈΈμ΄(μ¦, λμ μ κ°μ)λ 1 μ΄μ 8 μ΄νμ λλ€.
- dungeonsμ κ°λ‘(μ΄) κΈΈμ΄λ 2 μ λλ€.
- dungeonsμ κ° νμ κ° λμ μ ["μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"] μ λλ€.
- "μ΅μ νμ νΌλ‘λ"λ νμ "μλͺ¨ νΌλ‘λ"λ³΄λ€ ν¬κ±°λ κ°μ΅λλ€.
- "μ΅μ νμ νΌλ‘λ"μ "μλͺ¨ νΌλ‘λ"λ 1 μ΄μ 1,000 μ΄νμΈ μμ°μμ λλ€.
- μλ‘ λ€λ₯Έ λμ μ ["μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"]κ° μλ‘ κ°μ μ μμ΅λλ€.
μ μΆλ ₯ μ
k | dungeons | result |
80 | [[80,20],[50,40],[30,10]] | 3 |
μ μΆλ ₯ μ μ€λͺ
νμ¬ νΌλ‘λλ 80μ
λλ€.
λ§μ½, 첫 λ²μ§Έ β λ λ²μ§Έ β μΈ λ²μ§Έ λμ μμλ‘ νννλ€λ©΄
- νμ¬ νΌλ‘λλ 80μ΄λ©°, 첫 λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ" λν 80μ΄λ―λ‘, 첫 λ²μ§Έ λμ μ ννν μ μμ΅λλ€. 첫 λ²μ§Έ λμ μ "μλͺ¨ νΌλ‘λ"λ 20μ΄λ―λ‘, λμ μ ννν ν λ¨μ νΌλ‘λλ 60μ λλ€.
- λ¨μ νΌλ‘λλ 60μ΄λ©°, λ λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ"λ 50μ΄λ―λ‘, λ λ²μ§Έ λμ μ ννν μ μμ΅λλ€. λ λ²μ§Έ λμ μ "μλͺ¨ νΌλ‘λ"λ 40μ΄λ―λ‘, λμ μ ννν ν λ¨μ νΌλ‘λλ 20μ λλ€.
- λ¨μ νΌλ‘λλ 20μ΄λ©°, μΈ λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ"λ 30μ λλ€. λ°λΌμ μΈ λ²μ§Έ λμ μ ννν μ μμ΅λλ€.
λ§μ½, 첫 λ²μ§Έ β μΈ λ²μ§Έ β λ λ²μ§Έ λμ μμλ‘ νννλ€λ©΄
- νμ¬ νΌλ‘λλ 80μ΄λ©°, 첫 λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ" λν 80μ΄λ―λ‘, 첫 λ²μ§Έ λμ μ ννν μ μμ΅λλ€. 첫 λ²μ§Έ λμ μ "μλͺ¨ νΌλ‘λ"λ 20μ΄λ―λ‘, λμ μ ννν ν λ¨μ νΌλ‘λλ 60μ λλ€.
- λ¨μ νΌλ‘λλ 60μ΄λ©°, μΈ λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ"λ 30μ΄λ―λ‘, μΈ λ²μ§Έ λμ μ ννν μ μμ΅λλ€. μΈ λ²μ§Έ λμ μ "μλͺ¨ νΌλ‘λ"λ 10μ΄λ―λ‘, λμ μ ννν ν λ¨μ νΌλ‘λλ 50μ λλ€.
- λ¨μ νΌλ‘λλ 50μ΄λ©°, λ λ²μ§Έ λμ μ λκΈ°μν΄ νμν "μ΅μ νμ νΌλ‘λ"λ 50μ΄λ―λ‘, λ λ²μ§Έ λμ μ ννν μ μμ΅λλ€. λ λ²μ§Έ λμ μ "μλͺ¨ νΌλ‘λ"λ 40μ΄λ―λ‘, λμ μ ννν ν λ¨μ νΌλ‘λλ 10μ λλ€.
λ°λΌμ μ΄ κ²½μ° μΈ λμ μ λͺ¨λ ννν μ μμΌλ©°, μ μ κ° ννν μ μλ μ΅λ λμ μλ 3μ
λλ€.
β» κ³΅μ§ - 2022λ
2μ 25μΌ ν
μ€νΈμΌμ΄μ€κ° μΆκ°λμμ΅λλ€.
solution.java
import java.util.*;
class Solution {
public int answer;
public boolean[] visited;
public int solution(int k, int[][] dungeons) {
visited = new boolean[dungeons.length];
dfs(0, k, dungeons);
return answer;
}
public void dfs(int depth, int k, int[][] dungeons) {
for (int i = 0; i < dungeons.length; i++) {
if (!visited[i] && dungeons[i][0] <= k) {
visited[i] = true;
dfs(depth + 1, k - dungeons[i][1], dungeons);
visited[i] = false;
}
}
answer = Math.max(answer, depth);
}
}
ν΅μ¬ ν€μλ
- μ΅λ νμ μλ₯Ό λ΄μ λ³μμ κ° λμ μ νμ¬ νμν μνμΈμ§ λνλ΄λ λ°°μ΄μ μ μΈνλ€.
- νμ¬ κΉμ΄μ νμ¬ νΌλ‘λλ₯Ό νλΌλ―Έν°λ‘ dfs λ©μλλ₯Ό μ€ννλ€.
- 첫 λ²μ§Έ λμ λΆν° λ°©λ¬Ένλ©° λ§μ½ ν΄λΉ λμ μ νμν μνκ° μλκ³ , νμ¬ νΌλ‘λκ° λ°©λ¬Έν λμ μ νμ νΌλ‘λλ³΄λ€ κ°κ±°λ μμ κ²½μ°, λ€μκ³Ό κ°μ΄ μ§νλλ€.
- λμ μ νμν κ²μΌλ‘ νμνκ³ , κΉμ΄λ₯Ό μ λ°μ΄νΈνκ³ , λμ μμ μλͺ¨ν νΌλ‘λλ§νΌ λ¨μ νΌλ‘λλ₯Ό κ°μμν€κ³ , dfsλ₯Ό μ¬κ·μ μΌλ‘ νΈμΆν΄μ μΆκ°μ μΈ λΆκΈ°λ₯Ό νμνλ€.
- ν΄λΉ λΆκΈ°μ νμμ΄ λλλ©΄ νμνλ λμ μ νμνμ§ μμ λμ μΌλ‘ λ°κΎΌλ€.
- νμ¬ κΉμ΄μ μ΅λ νμ μλ₯Ό λΉκ΅ν΄μ λ ν° κ°μ μ΅λ νμ μλ‘ μ μ₯νλ€.
κ²°λ‘ !
μ²μ λ¬Έμ λ₯Ό μ νμ λ dfsλ₯Ό νμ©νλ λ¬Έμ μμ νμ
νμ§ λͺ»ν΄ μκ³ λ¦¬μ¦ κ΅¬μ±μ μ΄λ €μμ κ²ͺμλ€.
Share article