728x90
๐ section04 - 4 - ์กธ์ ์ ๋ฌผ(bruteForce)
์ํ์ ์ต๋ํ ๋ง์ด ์ฌ์ผ ํ๋ ๋ฌธ์ ๋ ๋น์ฉ์ด ์ ๊ฒ ๋๋ ์ํ๋ถํฐ ํฌํจํ๋ฉด ์ต๋ํ ๋ง์ด ์ด ์ ์๋ค๋ ์ ์ ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํ์. ๊ทธ๋ฆฌ๊ณ ์ต๋ ๋ช ๋ช
์ ํ์๋ค์๊ฒ ์ฌ์ค ์ ์๋์ง ๋ณด๋ ค๋ฉด ๊ฒฝ์ฐ์ ์๋ฅผ ํ๋์ฉ ๋ฐ์ ธ๊ฐ๋ฉฐ ๊ฒ์ฌ๋ฅผ ๋ค ํด์ผ ํ๊ธฐ ๋๋ฌธ์ bruteForce
๋ฅผ ์ด์ฉํ์.
์ด์ค ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ๋งจ ์ฒ์ ์ํ์ 50% ํ ์ธ ์ฟ ํฐ์ ์ฌ์ฉํ๊ณ ๋๋จธ์ง ์ํ์ ๊ตฌ๋งคํ ๋๋ ๊ทธ๋ฅ ๋ํด์ฃผ๋ฉด ๋๋ค. ๋์ผํ ํ์์ด ์์ผ๋ฏ๋ก i !== j
์ธ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๊ฒ๋ ์์ง ๋ง์.
// ๋์ ์ฝ๋
let n = 5;
let m = 28;
let cost = [[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(n, m, cost));
function solution(n, m, cost) {
let max = Number.MIN_SAFE_INTEGER;
cost.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i = 0; i < n; i++) {
let budget = m - (cost[i][0] / 2 + cost[i][1]);
let cnt = 1;
for (let j = 0; j < n; j++) {
if (i === j) continue;
if (budget - (cost[j][0] + cost[j][1]) >= 0) {
budget -= cost[j][0] + cost[j][1];
cnt++;
} else {
break;
}
}
max = Math.max(max, cnt);
}
return max;
}
// ๊ฐ์ฌ๋ ์ฝ๋
let n = 5;
let budget = 28;
let arr = [[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(n, budget, arr))
function solution(n, budget, arr){
let ans = Number.MIN_SAFE_INTEGER;
arr.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
for (let i=0; i<n; i++){
let cnt = 1;
let changeBudget = budget - (arr[i][0]/2 + arr[i][1]);
for (let j=0; j<n; j++){
if (i === j) continue;
if (arr[j][0] + arr[j][1] <= changeBudget){
changeBudget -= arr[j][0] + arr[j][1];
cnt++
console.log(arr[j][0] + arr[j][1], changeBudget, cnt)
}else break;
}
ans = Math.max(ans, cnt);
}
}
๋ฐ์ํ
๋๊ธ