본문 바로가기
알고리즘/BOJ

[Python] 백준 11058번: 크리보드

by PIAI 2021. 10. 14.

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])

댓글