알고리즘/BOJ
[Python] 백준 11058번: 크리보드
PIAI
2021. 10. 14. 14:34
https://www.acmicpc.net/problem/11058
11058번: 크리보드
N = 3인 경우에 A, A, A를 눌러 A 3개를 출력할 수 있다. N = 7인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V를 눌러 9개를 출력할 수 있다. N = 11인 경우에는 A, A, A, Ctrl-A, Ctrl-C, Ctrl-V, Ctrl-V, Ctrl-A, Ctrl-C, Ctrl
www.acmicpc.net
1. dp의 값을 모두 1번의 경우 A로 출력할때만으로 초기화해준다.
2. 붙여넣기를 하려면 전체선택 + 복사가 필요하다. 현재 인덱스 기준으로 3번째 뒤부터 붙여넣기를 해주는 낮은 수부터 높은수 순으로 bottom-up 방식으로 진행해준다.
n = int(input())
dp = [i for i in range(n+1)]
for i in range(1, n-2):
for j in range(i+3, n+1):
dp[j] = max(dp[j], dp[i]*(j-i-1))
print(dp[n])