๐ŸŽฒ ๋ฐฑ์ค€ 16987๋ฒˆ ๊ณ„๋ž€์œผ๋กœ ๊ณ„๋ž€์น˜๊ธฐ

Jeongeunยท2024๋…„ 1์›” 27์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
156/187

๋ฐฑ์ค€ 16987๋ฒˆ

๐Ÿงธ ์™œ ํ˜ผ์ž์„œ๋Š” ์•ˆํ’€๋ฆฌ๋Š”์ง€ ๋‹ต์„ ๋ณด๋ฉด ์ถฉ๋ถ„ํžˆ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„ํ•˜๋‹ค.. ๋‹ค๋ฅธ ์‘์šฉ๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ ๋” ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.
๐ŸŽจ ์ฐธ๊ณ  ์ฝ”๋“œ

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split("\n");
const N = +input.shift();
const eggs = input.map((el) => el.split(" ").map(Number));
const eggsState = eggs.map((el) => el[0]);
let answer = 0;

const dfs = (index, arr) => {
  if (index === N) {
    const count = arr.filter((el) => el <= 0).length;
    if (answer < count) answer = count;
    return;
  }

  //์†์— ๋“  ๊ณ„๋ž€์ด ๊นจ์ง„ ์ƒํƒœ
  if (arr[index] <= 0) {
    dfs(index + 1, arr);
    return;
  }

  //๊นจ์ง€์ง€ ์•Š์€ ๊ณ„๋ž€ ์น˜๊ธฐ
  let pass = true;
  for (let i = 0; i < N; i++) {
    if (i !== index && arr[i] > 0) {
      pass = false;
      const temp = [...arr];
      temp[i] -= eggs[index][1];
      temp[index] -= eggs[i][1];
      dfs(index + 1, temp);
    }
  }

  //์น  ๊ณ„๋ž€์ด ์—†๋Š” ๊ฒฝ์šฐ
  if (pass) {
    if (answer < N - 1) {
      answer = N - 1;
    }
    return;
  }
};

dfs(0, eggsState);
console.log(answer);

0๊ฐœ์˜ ๋Œ“๊ธ€