문제
크리보드는 kriii가 만든 신기한 키보드이다. 크리보드에는 버튼이 4개만 있으며, 하는 역할은 다음과 같다.
- 화면에 A를 출력한다.
- Ctrl-A: 화면을 전체 선택한다
- Ctrl-C: 전체 선택한 내용을 버퍼에 복사한다
- Ctrl-V: 버퍼가 비어있지 않은 경우에는 화면에 출력된 문자열의 바로 뒤에 버퍼의 내용을 붙여넣는다.
크리보드의 버튼을 총 N번 눌러서 화면에 출력된 A개수를 최대로하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
크리보드의 버튼을 총 N번 눌러서 화면에 출력할 수 있는 A 개수의 최댓값을 출력한다.
예제 입력과 출력
알고리즘 분류
다이나믹 프로그래밍
정답
import sys
input = lambda : sys.stdin.readline().strip()
n=int(input())
dp = [i for i in range(0, 102)]
for i in range(6, 101):
dp[i] = max(dp[i-3]*2, max(dp[i-4]*3, dp[i-5]*4))
print(dp[n])
백준 알고리즘 11058번 : https://www.acmicpc.net/problem/11058
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
백준알고리즘 - 11729번 하노이 탑 이동 순서 - 파이썬(Python) (0) | 2020.07.06 |
---|---|
백준알고리즘 - 1157번 단어 공부 - 파이썬(Python) (0) | 2020.07.05 |
백준알고리즘 - 10942번 팰린드롬? - 파이썬(Python) (0) | 2020.07.04 |
백준알고리즘 - 1890번 점프 - 파이썬(Python) (0) | 2020.07.04 |
백준알고리즘 - 11723번 집합 - 파이썬(Python) (0) | 2020.07.04 |