Jieunnyμ λΈλ‘κ·Έ
[JS] νλ‘κ·Έλλ¨Έμ€ - νΌλ‘λ λ³Έλ¬Έ
π λ¬Έμ
XXκ²μμλ νΌλ‘λ μμ€ν (0 μ΄μμ μ μλ‘ ννν©λλ€)μ΄ μμΌλ©°, μΌμ νΌλ‘λλ₯Ό μ¬μ©ν΄μ λμ μ ννν μ μμ΅λλ€. μ΄λ, κ° λμ λ§λ€ ννμ μμνκΈ° μν΄ νμν "μ΅μ νμ νΌλ‘λ"μ λμ ννμ λ§μ³€μ λ μλͺ¨λλ "μλͺ¨ νΌλ‘λ"κ° μμ΅λλ€. "μ΅μ νμ νΌλ‘λ"λ ν΄λΉ λμ μ νννκΈ° μν΄ κ°μ§κ³ μμ΄μΌ νλ μ΅μνμ νΌλ‘λλ₯Ό λνλ΄λ©°, "μλͺ¨ νΌλ‘λ"λ λμ μ ννν ν μλͺ¨λλ νΌλ‘λλ₯Ό λνλ λλ€. μλ₯Ό λ€μ΄ "μ΅μ νμ νΌλ‘λ"κ° 80, "μλͺ¨ νΌλ‘λ"κ° 20μΈ λμ μ νννκΈ° μν΄μλ μ μ μ νμ¬ λ¨μ νΌλ‘λλ 80 μ΄μ μ΄μ΄μΌ νλ©°, λμ μ ννν νμλ νΌλ‘λ 20μ΄ μλͺ¨λ©λλ€.
μ΄ κ²μμλ ν루μ ν λ²μ© ννν μ μλ λμ μ΄ μ¬λ¬κ° μλλ°, ν μ μ κ° μ€λ μ΄ λμ λ€μ μ΅λν λ§μ΄ νννλ € ν©λλ€. μ μ μ νμ¬ νΌλ‘λ kμ κ° λμ λ³ "μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"κ° λ΄κΈ΄ 2μ°¨μ λ°°μ΄ dungeons κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ μ κ° ννν μ μλ μ΅λ λμ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
π‘ μμ΄λμ΄
μ£Όμ΄μ§λ λμ μ μ΅λ κ°μκ° 8κ°μ΄κΈ° λλ¬Έμ μμ νμμΌλ‘ νμ΄λ λλ€.
=> μ£Όμ΄μ§ λμ μ μνν μ μλ λͺ¨λ κ²½μ°μ μλ₯Ό ν΄λ³΄λ λ°©λ²(DFS)
λͺ¨λ κ²½μ°μ μλ₯Ό ν΄λ³΄κ³ κ·Έ μ€ κ°μ₯ λ§μ λμ μ ννν μ μλ κ²½μ°μ λ΅μ λ°ννλ€.
βοΈ νμ΄
let answer = 0;
function solution(k, dungeons) {
const visited = Array(dungeons.length).fill(false);
// λ°©λ¬Έ νλμ§ κΈ°λ‘
dfs(k, 0, dungeons, visited);
return answer;
}
function dfs(k, result, dungeons, visited) {
// result = λ°©λ¬Έ λμ κ°μ, k = λ¨μ νΌλ‘λ
answer = answer > result ? answer : result;
// λ μ€ λ λ§μ΄ ννν κ±Έλ‘ answerμ κ°±μ
for(let i=0; i<dungeons.length; i++){
if(!visited[i] && k >= dungeons[i][0]){
// μμ§ κ° μ μκ³ , νΌλ‘λκ° μΆ©λΆνλ€λ©΄
visited[i] = true;
dfs(k-dungeons[i][1], result+1, dungeons, visited);
// μ΄λ² λμ νννλ€κ³ μκ°νκ³ , λ€μ λμ νννλ€.
visited[i] = 0;
// dfsλ‘ μν λ€ λλ΄κ³ μ λ
Έλλ‘ λμκ°λλ μ§κΈ λ
Έλ λ°©λ¬Έ μνκ±Έλ‘ λ€μ λ°κΏμ€μΌνλ€.
}
}
return answer;
}
'Study > Coding Test' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] νλ‘κ·Έλλ¨Έμ€ - λ¬λ¦¬κΈ° κ²½μ£Ό (0) | 2023.07.17 |
---|---|
[JS] νλ‘κ·Έλλ¨Έμ€ - ν μΈ νμ¬ (0) | 2023.04.04 |
[JS] νλ‘κ·Έλλ¨Έμ€ - kμ§μμμ μμ κ°μ ꡬνκΈ° (0) | 2023.04.04 |
[JS] νλ‘κ·Έλλ¨Έμ€ - λ§μΉ νκΈ° (0) | 2023.04.04 |
[JS] νλ‘κ·Έλλ¨Έμ€ - μΉ΄λ λμΉ (0) | 2023.04.04 |