동캄의 코딩도장

백준 14606 [피자 (Small)] 파이썬 본문

코테/BOJ

백준 14606 [피자 (Small)] 파이썬

동 캄 2021. 12. 1. 23:47

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

 

14606번: 피자 (Small)

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

www.acmicpc.net

#14606
n=int(input())

dp=[0]*(n+1)

for i in range(1,n+1):
    for _ in range(1,i+1):
        dp[i]=dp[i//2]+dp[i-i//2]+(i//2)*(i-i//2)
print(dp[n])

1부터 시작해서 n까지 DP 값을 갱신해나간다.

i번째 값은 (i//2 박스를 나눌 때의 즐거움) + (i-i//2 박스를 나눌 때의 즐거움) + (i//2)*(i-i//2) 이다.

'코테 > BOJ' 카테고리의 다른 글

백준 15652 [N과M (4)] 파이썬  (0) 2021.12.02
백준 15651 [N과M (3)] 파이썬  (0) 2021.12.02
백준 15650 [N과M (2)] 파이썬  (0) 2021.12.02
백준 15649 [N과M (1)] 파이썬  (0) 2021.12.02
백준 13699 [점화식] 파이썬  (0) 2021.12.01