[ νλ‘κ·Έλλ¨Έμ€ ] νΌλ‘λ
π νλ‘κ·Έλλ¨Έμ€ λ¬Έμ λ§ν¬
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ λ§€μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
βπ» λ¬Έμ νμ΄ Github λ§ν¬
-Swift-CodingTest/νλ‘κ·Έλλ¨Έμ€/2/87946.β νΌλ‘λ at 2155d92b0146c5dcfbdbe857b92dd391a4c36f4b · BaeJihae/-Swift-CodingT
Swiftλ‘ νΌ μ½λ© ν μ€νΈ λ¬Έμ λ€μ μ 리νκ³ κ³΅λΆνλ 곡κ°μ λλ€. Contribute to BaeJihae/-Swift-CodingTest development by creating an account on GitHub.
github.com
λ¬Έμ μ€λͺ
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 |
λ¬Έμ νμ΄
λμ νμ΄
μ΄νλμ 머리λ₯Ό μΈλ§Έλλ° λͺ»νμμ΅λλ€!
μμ΄λ‘ ν΄λΉ λ°°μ΄μ νμν΄μΌνλ κ²λ, μ¬κ·ν¨μλ‘ νμ΄μΌνλ€λ κ²λ μμλλ°, λ‘μ§κ΅¬νμ΄ μ μμΌλ‘ λμ§ μμμ΄μ..!
κ·Έλμ νμ°Έμ κ³ λ―Όνλ€ λ΅μ λ³΄κΈ°λ‘ νμ΅λλ€!
λͺ¨λ κ²½μ°μ μλ₯Ό μμΌλ‘ λ€ κ·Έλ €λ³Έ νμμΌ μ΄ν΄κ° λμμ΄μ!
λ΄μΌ μμΉ¨μ μΌμ΄λμλ§μ μ΄ λ¬Έμ λ₯Ό νμ΄μΌ κ² λ€λ μκ°μ νμ΅λλ€!
λ€λ₯Έ μ¬λ νμ΄
import Foundation
func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {
var answer = 0
var check = [Bool](repeating: false, count: dungeons.count)
func dfs(now: Int, depth: Int) {
answer = max(depth, answer)
for i in 0..<dungeons.count {
if !check[i] && now >= dungeons[i][0]{
check[i] = true
dfs(now: now - dungeons[i][1], depth: depth+1 )
check[i] = false
}
}
}
dfs(now: k, depth: 0)
return answer
}
checkλ ν΄λΉ μΈλ±μ€κ° μνλ₯Ό λμλμ§λ₯Ό νμ νλ λ°°μ΄μ λλ€.
answerμ κ°μ₯ κΉκ² κΉμ§ νμν κ²½μ°λ₯Ό μ μ₯νκΈ° λλ¬Έμ λ΅κ³Ό κ°μ΅λλ€.
μ¬κ·ν¨μλ₯Ό ν΅ν΄μ λͺ¨λ κ²½μ°λ₯Ό νμν μ μλλ‘ μμ νμμΌλ‘ λ€μ΄κ°μ΅λλ€.