728x90
λ°μν
π λ¬Έμ
μ μλμ μ¬ν΄ μ‘Έμ νλ λ° νμλ€μκ² μ‘Έμ μ λ¬Όμ μ£Όλ €κ³ νλ€. νμλ€μκ² μΈν°λ· μΌνλͺ°μμ κ°μ μνλ μνμ κ³¨λΌ κ·Έ μνμ κ°κ²©κ³Ό λ°°μ‘λΉλ₯Ό μ μΆνλΌκ³ νλ€. μ μλμ΄ κ°μ§κ³ μλ μμ°μ νμ λμ΄ μλ€. νμ¬ μμ°μΌλ‘ μ΅λ λͺ λͺ μ νμμκ² μ λ¬Όμ μ¬μ€ μ μλμ§ κ΅¬νλ λ¬Έμ μ΄λ€.
μ μλμ μν νλλ₯Ό 50% ν μΈν΄μ(λ° κ°κ²©) μ΄ μ μλ μΏ ν°μ κ°μ§κ³ μλ€. λ°°μ‘λΉλ ν μΈμ ν¬ν¨λμ§ μλλ€.
π νμ΄
π§π»π» λμ νμ΄ λ°©λ²
price - μ§λΆν΄μΌν κ°κ²©
- κ° νμλ€μ΄ κ³ λ₯Έ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
- λ°λ³΅λ¬Έμ λλ©° κ° νμλ€μ΄ κ³ λ₯Έ μνμ ν μΈμ λΆμ¬νκ³ ν μΈλ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ priceμ μ μ₯νλ€. (μ€μ§ νλμ μνμλ§ ν μΈ λΆμ¬)
- ν μΈ λ°μ μνμ μ μΈν λλ¨Έμ§ μνλ€μ λλ©° κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ΄ μμ°μ μ΄κ³Όνμ§ μλλ€λ©΄ ν΄λΉ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ priceμ λμ νκ³ countλ₯Ό 1 μ¦κ°μν¨λ€.
- answerμ μ μ₯λ κ°κ³Ό countλ₯Ό λΉκ΅νμ¬ λ ν° κ°μ answerμ μ¬ν λΉνλ€.
function solution(m, product) {
let answer = 0;
let n = product.length;
product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i = 0; i < n; i++) {
let price = product[i][0] / 2 + product[i][1];
let count = 1;
for (let j = 0; j < n; j++) {
if (i !== j && price + (product[j][0] + product[j][1]) <= m) {
price += product[j][0] + product[j][1];
count++;
}
}
answer = Math.max(answer, count);
}
return answer;
}
let arr = [
[6, 6],
[2, 2],
[4, 3],
[4, 5],
[10, 3],
];
console.log(solution(28, arr));
π¨πΌπ« κ°μ¬λ νμ΄ λ°©λ²
- κ° νμλ€μ΄ κ³ λ₯Έ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
- λ°λ³΅λ¬Έμ λλ©° κ° νμλ€μ΄ κ³ λ₯Έ μνμ ν μΈμ λΆμ¬νκ³ ν μΈλ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ μμ°μμ λΊλ€. (μ€μ§ νλμ μνμλ§ ν μΈ λΆμ¬)
- ν μΈ λ°μ μνμ μ μΈν λλ¨Έμ§ μνλ€μ λλ©° κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ΄ λ¨μ μμ°μ μ΄κ³Όνμ§ μλλ€λ©΄ ν΄λΉ μνμ κ°κ²©κ³Ό λ°°μ‘λΉμ ν©μ μμ°μμ λΉΌκ³ cntλ₯Ό 1 μ¦κ°μν¨λ€.
- μ΄κ³Όνλ€λ©΄ λ μ΄μ μνμ ꡬ맀ν μ μμΌλ―λ‘ breakλ¬Έμ μ¬μ©νμ¬ forλ¬Έμ λΉ μ Έλμ¨λ€.
- answerμ μ μ₯λ κ°κ³Ό cntλ₯Ό λΉκ΅νμ¬ λ ν° κ°μ answerμ μ¬ν λΉνλ€.
function solution(m, product) {
let answer = 0;
let n = product.length;
product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i = 0; i < n; i++) {
let money = m - (product[i][0] / 2 + product[i][1]);
let cnt = 1;
for (let j = 0; j < n; j++) {
if (j !== i && product[j][0] + product[j][1] > money) break;
if (j !== i && product[j][0] + product[j][1] <= money) {
money -= product[j][0] + product[j][1];
cnt++;
}
}
answer = Math.max(answer, cnt);
}
return answer;
}
let arr = [
[6, 6],
[2, 2],
[4, 3],
[4, 5],
[10, 3],
];
console.log(solution(28, arr));
'Algorithm > μΈνλ°(inflearn)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript/section 5] 01 - λ λ°°μ΄ ν©μΉκΈ° (0) | 2022.09.17 |
---|---|
[JavaScript/section 4] 05 - Kλ²μ§Έ ν° μ (0) | 2022.09.16 |
[JavaScript/section 4] 03 - λ©ν λ§ (0) | 2022.09.14 |
[JavaScript/section 4] 02 - λ€μ§μ μμ (0) | 2022.09.14 |
[JavaScript/section 4] 01 - μλ¦Ώμμ ν© (0) | 2022.09.14 |