import sys
n=int(sys.stdin.readline().rstrip())
v=[0]*11
v[1]=0
v[2]=1
v[3]=3
for i in range(4,11):
result=0
for j in range(i//2+1):
result=max(result,v[j]+v[i-j]+(j*(i-j)))
v[i]=result
print(v[n])
나올 수 있는 모든 조합을 고려해야하니까 이렇게 풀었는데 찾아보니 진짜 푸는 방법이 여러개였다.
근데 제일 이해가 안되는건
dp[i] = dp[i-1] + (i-1)
이게 점화식이라는거다.
그래서 gpt를 써봤다
수학적으로 모든 분할이 동일하다고 한다...
예를 들어 9를 6과 3으로 나누면
18+dp[6]+dp[3]인데 이는 18+15+3 = 36이고
9를 4와 5로 분할하면
20+6+10으로 36이 된다.
엄청 헷갈린다...
'IT > ps' 카테고리의 다른 글
백준 19947번 투자의 귀재 배주형 (0) | 2025.03.07 |
---|---|
백준 14916번 거스름돈 (0) | 2025.03.07 |
백준 9655번 돌 게임 (0) | 2025.03.07 |
백준 9625번 BABBA (0) | 2025.03.07 |
백준 9084번 동전 (0) | 2025.03.07 |