728x90
소스코드
let fs = require('fs');
const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`;
let input = fs.readFileSync(filePath).toString().split(' ');
const c = console.log
let n = (Number(input[0]))
let dp = []
dp[1] = 0
dp[2] = 1
for(let i = 3 ; i < 11 ; i++){
dp[i] = i-1 + dp[i-1]
}
c(dp[n])
풀이
우선 1과 2는 0과 1로 값을 할당해 주었다.
값을 최대로 얻기 위해서 n층의 높이를 n-1로 계속해서 쌓는 방식을 이용해야 하는데,
만약 5층의 피자탑이 있으면 4 1 / 3 1 1 / 2 1 1 1 / 1 1 1 1 1 로 피자탑을 쌓아야하는 규칙을 얻어내어
점화식을 작성해 풀었다.
문제
https://www.acmicpc.net/problem/14606
14606번: 피자 (Small)
예제1의 입력이 1이므로, 게임 시작부터 갑이 분리할 수 있는 피자탑이 없습니다. 따라서 갑이 얻는 즐거움은 0입니다. 예제2의 정답 3은 다음과 같은 과정을 통해 얻어집니다. 먼저 놀이를 시작
www.acmicpc.net
728x90
'BOJ > 다이나믹 프로그래밍' 카테고리의 다른 글
BOJ : 2293 동전1 (파이썬 + 자바스크립트) (0) | 2023.01.17 |
---|---|
BOJ : 2565 전깃줄(JS) (0) | 2023.01.15 |
BOJ : 11048 이동하기 (JS) (0) | 2023.01.14 |
BOJ : 12865 평범한 배낭 (JS) (0) | 2023.01.09 |
BOJ : 9625 BABBA (JS) (0) | 2023.01.07 |