티스토리 뷰

https://www.acmicpc.net/problem/14606

 

14606번: 피자 (Small)

예제1의 입력이 1이므로, 게임 시작부터 갑이 분리할 수 있는 피자탑이 없습니다. 따라서 갑이 얻는 즐거움은 0입니다. 예제2의 정답 3은 다음과 같은 과정을 통해 얻어집니다. 먼저 놀이를 시작

www.acmicpc.net

dp[i] 는 피자 판이 i개 있을 때 느낄 수 있는 즐거움의 총합

조건식
dp[i] = Math.floor(i/2) * (i-Math.floor(i/2)) + dp[Math.floor(i/2)] + dp[(i-Math.floor(i/2))]

초기값
dp[1] = 0
dp[2] = 1
const input = +require('fs').readFileSync('./dev/stdin').toString().trim();

let dp = Array(11).fill(0);
dp[1] = 0;
dp[2] = 1;

for (let i = 3; i <= 10; i++) {
	const B = Math.floor(i / 2);
	const C = i - B;
	dp[i] = B * C + dp[B] + dp[C];
}
console.log(dp[input]);
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함