ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

์„ ์ƒ๋‹˜์€ ์˜ฌํ•ด ์กธ์—…ํ•˜๋Š” ๋ฐ˜ ํ•™์ƒ๋“ค์—๊ฒŒ ์กธ์—… ์„ ๋ฌผ์„ ์ฃผ๋ ค๊ณ  ํ•œ๋‹ค.ํ•™์ƒ๋“ค์—๊ฒŒ ๊ฐ์ž ์›ํ•˜๋Š” ์ƒํ’ˆ์„ ๊ณจ๋ผ ๊ทธ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ๊ณผ ๋ฐฐ์†ก๋น„๋ฅผ ์ œ์ถœํ•˜๋ผ๊ณ  ํ•˜์˜€๋‹ค. ์„ ์ƒ๋‹˜์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์˜ˆ์‚ฐ์€ ํ•œ์ •๋˜์–ด ์žˆ๋‹ค.ํ˜„์žฌ ์˜ˆ์‚ฐ์œผ๋กœ ์ตœ๋Œ€ ๋ช‡ ๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์„ ๋ฌผ์„ ์‚ฌ์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๊ณ ์ž ํ•œ๋‹ค.์„ ์ƒ๋‹˜์€ ์ƒํ’ˆ ํ•˜๋‚˜๋ฅผ 50% ํ• ์ธํ•ด์„œ ์‚ด ์ˆ˜ ์žˆ๋Š” ์ฟ ํฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฐฐ์†ก๋น„๋Š” ํ• ์ธ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.(์„ ์ƒ๋‹˜์€ ์ตœ์†Œํ•œ 1๊ฐœ ์ด์ƒ์˜ ์ƒํ’ˆ์„ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค)

 

๋ฌธ์ œํ’€์ด

์˜ˆ์‚ฐ์— ๋งž๊ฒŒ ํ•™์ƒ๋“ค์—๊ฒŒ ์„ ๋ฌผ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์ด 4๊ฐ€์ง€์ด๋‹ค.2๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ, 3๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ, 4๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ, 5๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์„ ์ƒ๋‹˜์€ ์ตœ์†Œํ•œ 1๊ฐœ ์ด์ƒ์˜ ์„ ๋ฌผ์„ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํƒ์ƒ‰์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5๋ช…์˜ ํ•™์ƒ ์ค‘์—์„œ r๋ช…์„ ๋ฝ‘๋Š” ์กฐํ•ฉ์„ ์ด์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋•Œ r = 2, 3, 4, 5(๋ช…) ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  r์ด ์ฆ๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค 4๋ฒˆ์˜ ๋ฐ˜๋ณต๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๋˜ ๋‹ค์Œ ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋ฐ˜๋ณต๋ฌธ์˜ ์ธ๋ฑ์Šค ์ดˆ๊ธฐ๊ฐ’์€ ์ด์ „ ์ธ๋ฑ์Šค์˜ ์ดˆ๊ธฐ๊ฐ’์— 1์„ ๊ฐ€์‚ฐํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

์˜ˆ์‚ฐ ํ•œ๋„๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š๊ณ  ์˜ˆ์‚ฐ์„ ์ „๋ถ€ ์†Œ๋น„ํ–ˆ์„ ๋•Œ์˜ ํ•™์ƒ ์ˆ˜๊ฐ€ ์ตœ๋Œ€ ๊ฐ’์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๊ฒฝ์šฐ์˜ ์กฐํ•ฉ๋“ค์˜ ํ•ฉ์‚ฐ ๊ฐ’์„ ์˜ˆ์‚ฐ๊ณผ ๋น„๊ตํ•ด์ฃผ์—ˆ๋‹ค. ์„ ์ƒ๋‹˜์€ ํ•œ ์ƒํ’ˆ์— ๋Œ€ํ•ด์„œ๋งŒ 50%์„ ํ• ์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ฟ ํฐ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ ์ค‘ ๋งˆ์ง€๋ง‰ ์กฐํ•ฉ์˜ ์ƒํ’ˆ์— ๊ด€ํ•ด์„œ๋งŒ 0.5๋ฅผ ๊ณฑํ•ด์ฃผ๊ณ  ๋ฐฐ์†ก๋น„์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ๋ณ„๋„๋กœ ํ•ฉ์‚ฐํ•ด์ฃผ์–ด ํ•ด๋‹น ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผฐ๋‹ค.

 

์ฝ”๋“œ

function solution(stu, budget, arr) {
  let answer = [];
  let sumArr = [];

  for(let i = 0; i < arr.length; i++) {
    let sum = 0;
    for(let j = 0; j < arr[i].length; j++) {
      sum += arr[i][j];
    }
    sumArr.push(sum);
  }

  for(let i = 0; i < arr.length; i++) {
    for(let j = i + 1; j < arr.length; j++) {
        if(sumArr[i] + ((arr[j][0] * 0.5) + (arr[j][1])) === 28) {
          answer.push([arr[i], arr[j]]);
        }
      for(let z = j + 1; z < arr.length; z++) {
        if(sumArr[i] + sumArr[j] + ((arr[z][0] * 0.5) + (arr[z][1])) ===28) {
          answer.push([arr[i], arr[j], arr[z]]);
        }
        for(let h = z + 1; h < arr.length; h++) {
          if(sumArr[i] + sumArr[j] + sumArr[z] + ((arr[h][0] * 0.5) + (arr[h][1])) === 28) {
            answer.push([[arr[i], arr[j], arr[z], arr[h]]]);
          }
          for(let s = h + 1; s < arr.length; s++) {
            if(sumArr[i] + sumArr[j] + sumArr[z] + sumArr[h] + ((arr[s][0] * 0.5) + (arr[s][1])) === 28) {
              answer.push([arr[i], arr[j], arr[z], arr[h], arr[h], arr[s]]);
            }
          }
        }
      }
    } 
  }

  return answer[0][0].length;
}
let stu = 5;
let budget = 28;
let arr = [[6,6], [2,2], [4,3], [4,5], [10, 3]]
console.log(solution(stu, budget, arr));

 

์˜ค๋‹ต

50%์˜ ํ• ์ธ ์ฟ ํฐ์„ ์–ด๋Š ์ƒํ’ˆ์— ์ ์šฉํ•˜๋ƒ์— ๋”ฐ๋ผ ์„ ๋ฌผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ƒํ’ˆ์— ํ• ์ธ์„ ์ ์šฉํ• ์ง€๋ฅผ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์žก๋Š”๋‹ค๋ฉด ์กฐํšŒ ๋ฐ ์ฐธ์กฐ์˜ ๋ฐ˜๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.(์‚ฌ์‹ค์ƒ 2๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์™€ 5๋ช…์˜ ํ•™์ƒ์—๊ฒŒ ์„ ๋ฌผ์„ ๋‚˜๋ˆ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฒ€์‚ฌํ•ด๋ณด์ง€ ์•Š์•„๋„ ์˜ˆ์‚ฐ ๋‚ด์—์„œ ๋งŒ์กฑํ•  ๋งŒํ•œ ๋‹ต์„ ์ฐพ์•„๋‚ด๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ ๊ณผ์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค)

 

๋˜ํ•œ ์œ„์˜ ํ’€์ด์—์„œ๋Š” ์˜ˆ์‚ฐ์„ ์ „๋ถ€ ์‚ฌ์šฉํ•˜์˜€์„ ๋•Œ๊ฐ€ ์„ ๋ฌผ์„ ๋‚˜๋ˆ  ์ค„ ์ˆ˜ ์žˆ๋Š” ํ•™์ƒ์˜ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์˜€์ง€๋งŒ(์‹ค์ œ ์ •๋‹ต ๋˜ํ•œ ์˜ˆ์‚ฐ 28์„ ๋ชจ๋‘ ์†Œ๋น„ํ–ˆ์„ ๋•Œ ์„ ๋ฌผ์„ ์‚ฌ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํ•™์ƒ ์ˆ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค) ์˜ˆ์‚ฐ๋ณด๋‹ค ๋‚ฎ์€ ๊ธˆ์•ก์—์„œ ์ตœ๋Œ€ ํ•™์ƒ ์ˆ˜๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ์‚ฐ์ด ์˜ˆ์‚ฐ๊ณผ ๊ฐ™๋‹ค๋Š” ์กฐ๊ฑด์‹์„ ํ†ตํ•ด ๋‹ต์„ ์ฐพ๋Š” ๊ฒƒ์€ ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

 

์ด๋•Œ ์„ ๋ฌผ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํ•™์ƒ ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์— ํ• ์ธ์œจ์„ ์ ์šฉ์‹œํ‚ค๊ณ  ์ดํ›„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ๋‚จ๊ธด ๊ธˆ์•ก์„ ๊ฐ€์ง€๊ณ  ๋‚จ์€ ์ƒํ’ˆ๋“ค์„ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ’ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ Array.sort()๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์‹œ์ผœ ์ฃผ์—ˆ๋‹ค.

 

์ฝ”๋“œ

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));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
๊ธ€ ๋ณด๊ด€ํ•จ