λ¬Έμ
Sμ¬μμλ κ° λΆμμ νμν λ¬Όνμ μ§μν΄ μ£ΌκΈ° μν΄ λΆμλ³λ‘ λ¬Όνμ ꡬ맀νλλ° νμν κΈμ‘μ μ‘°μ¬νμ΅λλ€. κ·Έλ¬λ, μ 체 μμ°μ΄ μ ν΄μ Έ μκΈ° λλ¬Έμ λͺ¨λ λΆμμ λ¬Όνμ κ΅¬λ§€ν΄ μ€ μλ μμ΅λλ€. κ·Έλμ μ΅λν λ§μ λΆμμ λ¬Όνμ κ΅¬λ§€ν΄ μ€ μ μλλ‘ νλ €κ³ ν©λλ€.
λ¬Όνμ κ΅¬λ§€ν΄ μ€ λλ κ° λΆμκ° μ μ²ν κΈμ‘λ§νΌμ λͺ¨λ μ§μν΄ μ€μΌ ν©λλ€. μλ₯Ό λ€μ΄ 1,000μμ μ μ²ν λΆμμλ μ νν 1,000μμ μ§μν΄μΌ νλ©°, 1,000μλ³΄λ€ μ μ κΈμ‘μ μ§μν΄ μ€ μλ μμ΅λλ€.
λΆμλ³λ‘ μ μ²ν κΈμ‘μ΄ λ€μ΄μλ λ°°μ΄ dμ μμ° budgetμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΅λ λͺ κ°μ λΆμμ λ¬Όνμ μ§μν μ μλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ μΆλ ₯ μμ
d | budget | result |
[1,3,2,5,4] | 9 | 3 |
[2,2,3,3] | 10 | 4 |
νμ΄
λ¬Έμ κ° κ½€ κΈ΄ νΈμ΄μ§λ§ κ²°κ΅ μ΅λ λͺ κ°μ λΆμμ λ¬Όνμ μ§μν μ μλμ§λ₯Ό λ¬»κ³ μλ€.
μ μ²ν κΈμ‘μ΄ μ μ λΆμλ₯Ό μ°μ μΌλ‘ ν΄μΌ λ λ§μ λΆμμ μ§μν μ μμΌλ μΌλ¨ μ£Όμ΄μ§ λ°°μ΄μ λν΄ λ΄λ¦Όμ°¨μ μ λ ¬μ΄ νμνλ€.
κ·Έλ¦¬κ³ budgetμμ dμ μμλ₯Ό νλμ© λΉΌμ£Όλ©΄μ μΉ΄μ΄νΈλ₯Ό νλμ© λλ €κ°κ³ budgetμ΄ 0μ΄ λλ©΄ μΉ΄μ΄νΈλ₯Ό 리ν΄!
reduceλ‘ νκ³ μΆμμ§λ§ μκ°μ²λΌ μ μλμ΄μ μ²μμλ forλ¬Έμ μ΄μ©ν΄μ νμλ€.
forλ¬ΈμΌλ‘ νκΈ°
function solution(d, budget){
d.sort((a,b) => a-b);
for (let i = 0; i < d.length; i++) {
budget -= d[i];
answer += 1;
if (budget < 0){
answer--;
break;
}
}
return answer;
}
μ΄ν λ€λ₯Έ μ¬λλ€μ νμ΄λ₯Ό λ³΄κ³ reduceλ‘ λ€μ νμλ€.
reduce λ©μλλ‘ νκΈ°
function solution(d, budget) {
var answer = d.sort((a,b) => a - b).reduce((acc, curr) => acc + ((budget -= curr) >= 0), 0);
return answer;
}
reduce λ©μλλ₯Ό μ΄μ©ν΄μ acc
μ μ§μνκΈ°λ‘ ν λΆμλ₯Ό μΉ΄μ΄νΈνλ€.
0λ³΄λ€ μμ§ μμ λκΉμ§ budgetμμ νμ¬ κ°μ λΊλ€λ 쑰건.
μ΄λ² κΈ°νμ reduce ν¨μλ₯Ό λͺ λ² λ°λ³΅νλ€ λ³΄λ μ’ λ μ΅μν΄μ§ κ² κ°λ€.
reduce ν¨μμ λν΄μλ μλλ₯Ό μ°Έκ³ !
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
'π Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] νλ‘κ·Έλλ¨Έμ€ : OXν΄μ¦ (0) | 2022.12.12 |
---|---|
[JavaScript] νλ‘κ·Έλλ¨Έμ€ : λ°°μ΄ νμ μν€κΈ° (2) | 2022.12.02 |
[JavaScript] νλ‘κ·Έλλ¨Έμ€ : μ΅λΉκ° ꡬνκΈ° (2) | 2022.11.15 |
μκ³ λ¦¬μ¦μ μκ°λ³΅μ‘λμ Big-O (3) | 2022.04.29 |
[JS] μκ³ λ¦¬μ¦ : λ무 그리기 (λ³μ°κΈ°) (0) | 2022.04.18 |
Comment