๋ฌธ์
์ํ๋ ์ํ์ ๊ณจ๋ผ ๊ฐ๊ฒฉ๊ณผ ๋ฐฐ์ก๋น๋ฅผ ์ ์ถํ๋ผ
ํ์ฌ ์์ฐ์ผ๋ก ์ต๋ ๋ช ๋ช ์ ํ์์์ ์ ๋ฌผ์ ์ฌ์ค ์ ์๋์ง
์ํ ํ๋๋ฅผ 50% ํ ์ธํด์ ์ด ์ ์๋ ์ฟ ํฐ ์๋ค. ๋ฐฐ์ก๋น๋ ํ ์ธ์ ํฌํจ๋์ง ์๋๋ค.
์ ๋ ฅ์์ |
์์ฐ 28
์ ์ถํ ๊ฐ๊ฒฉ๊ณผ ๋ฐฐ์ก๋น [6, 6], [2, 2], [4, 3], [4, 5], [10, 3]
์ถ๋ ฅ์์ |
4
ํ์ด
์ด ๋น์ฉ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํ๋ค.
์ฟ ํฐ์ ์ด๋ค ๊ฐ๊ฒฉ์ ์ ์ฉ์์ผ์ผํ๋๊ฐ -> ๊ธฐ์ค์ด ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ์ฐพ์๋ด์ผํ๋ค.
์ฒซ ๋ฒ์งธ ์ํ์ ํ ์ธ๋ฐ๋๋ค ์๊ฐํ๊ณ , ์ด ๋น์ฉ์์ ์ ์ธํ๊ณ ๊ณ์ฐ
๋ ๋ฒ์งธ ์ํ์ ํ ์ธ๋ฐ๋๋ค ์๊ฐํ๊ณ ์ด ๋น์ฉ์์ ์ ์ธํ๊ณ ๊ณ์ฐ
.
.
.
๋ค ํด๋ณด๋ ๊ฒ์ด ์์ ํ์
a[0]+a[1] ์ํ๊ฐ๊ฒฉ+๋ฐฐ์ก๋น
์ ์ฒด ๋น์ฉํด์ ์ฒซ ๋ฒ์งธ ๊ธ์ก์ ํ ์ธํด์ ๋บ๋ค. → ์นด์ดํ ์ 1๋ถํฐ ์์
์ฝ๋
const solution = (budget, product) => {
let answer = 0;
let n = product.length;
product.sort((a, b) => (a[0] + a[1]) - (b[0] + b[1])); // ์ดํฉ ์์๋๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ๋จผ์ ํด์ฃผ๊ธฐ
// for๋ฌธ ๋๋ฉด์ ๋ชจ๋ ์ํ์ด ํ ๋ฒ์ฉ ํ ์ธ๋ฐ๋ ๊ฒฝ์ฐ ํด๋ณด๊ธฐ
for (let i = 0; i < n; i++) {
// ์ ์ฒด ์์ฐ ๊ตฌํ๊ธฐ
let money = budget - (product[i][0] / 2 + product[i][1]); // ํ ์ธ๋ฐ์ ๊ธ์ก์ ์ ์ฒด ์์ฐ์์ ๋บ๋ค.(์ฐ ๊ฒฝ์ฐ๋ก ๊ณ์ฐ)
let count = 1; // ์์ ๊ณ์ฐ์ผ๋ก 1๊ฐ๋ ๊ณ์ฐํ๋ค๋ ๊ฐ์ ์ผ๋ก 1๋ถํฐ ์์ํจ
for (let j = 0; j < n; j++) {
// i๋ ์ด๋ฏธ ํ ์ธ๋ ์ํ์ด๋ฏ๋ก j๊ฐ i๋ ๊ฐ์ ๊ฒฝ์ฐ๋ ์๋๋๋ก ์ฒ๋ฆฌ
if (j !== i && (product[j][0] + product[j][1]) > money) break; // ์ฌ๋ ค๊ณ ํ๋ ๊ฒ์ด ๋จ์ ์์ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ break;
if (j !== i && (product[j][0] + product[j][1]) <= money) { // ๋จ์์์ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์์ผํ๋ค.
money -= (product[j][0] + product[j][1]); // ์ ์ฒด์์ ๋น์ฉ ๋นผ์ฃผ๊ธฐ
count++; // ์ํ ๊ฐ์ ์นด์ดํ
}
}
answer = Math.max(answer, count);
}
return answer;
}
const budget = 28;
const product = [[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(budget, product));
์ฃผ์ ์๋ ์ ์ฒด์ฝ๋
const solution = (budget, 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 = budget - (product[i][0] / 2 + product[i][1]);
let count = 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]);
count++;
}
}
answer = Math.max(answer, count);
}
return answer;
}
const budget = 28;
const product = [[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(budget, product));
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (1) | 2021.11.04 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2021.10.29 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ต์์ง์ฌ๊ฐํ (0) | 2021.10.21 |
ํ๋ก๊ทธ๋๋จธ์ค | ์์ฃผํ์ง ๋ชปํ ์ ์(ํด์) (0) | 2021.09.25 |
JS์๊ณ ๋ฆฌ์ฆ | ์๋๊ทธ๋จ์ด ๋๋ ๋ถ๋ถ๋ฌธ์์ด์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2021.09.24 |