๐ŸŽฒ ๋ฐฑ์ค€ 1699๋ฒˆ ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ

Jeongeunยท2023๋…„ 6์›” 14์ผ
0

๋ฐฑ์ค€

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

๋ฐฑ์ค€ 1699๋ฒˆ

๐Ÿ’Š ์ฒ˜์Œ์— ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ ์—†์ด ๊ฐ€์žฅ ํฐ ์ œ๊ณฑ๊ทผ ์ผ๋•Œ๋กœ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ ํ‹€๋ ธ๋‹ค. (๋ฐ˜๋ก€:52)
๐Ÿ”” dp๋ฅผ index์ˆ˜๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•ด ์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ฝ”๋“œ

const fs = require('fs'); 
const input = +fs.readFileSync('/dev/stdin').toString().trim();

const dp = [0];

for (let i = 1; i <= input; i++) {
  if (i % Math.sqrt(i) === 0) {
    dp[i] = 1;
  } else {
    const value =Math.floor(Math.sqrt(i));
    for (let j = 1; j <= value; j++) {
      dp[i] = dp[i]
        ? Math.min(dp[j ** 2] + dp[i - j ** 2], dp[i])
        : dp[j ** 2] + dp[i - j ** 2];
    }
  }
}

console.log(dp[input]);

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