[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