문제 링크
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
문제 설명
문제
크리보드는 kriii가 만든 신기한 키보드이다. 크리보드에는 버튼이 4개만 있으며, 하는 역할은 다음과 같다.
- 화면에 A를 출력한다.
- Ctrl-A: 화면을 전체 선택한다
- Ctrl-C: 전체 선택한 내용을 버퍼에 복사한다
- Ctrl-V: 버퍼가 비어있지 않은 경우에는 화면에 출력된 문자열의 바로 뒤에 버퍼의 내용을 붙여넣는다.
크리보드의 버튼을 총 N번 눌러서 화면에 출력된 A개수를 최대로하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
크리보드의 버튼을 총 N번 눌러서 화면에 출력할 수 있는 A 개수의 최댓값을 출력한다.
문제 풀이
이번에 풀었던 세 문제 중에 제일 쉬웠다.
코드는 다음과 같다.
코드
N = int(input())
dp = [i for i in range(N + 1)]
for i in range(7, N + 1):
dp[i] = max(dp[i - 3] * 2, max(dp[i - 4] * 3, dp[i - 5] * 4))
print(dp[N])
결과
메모리 | 시간 |
30864 KB | 76 ms |
다른 사람의 코드
리뷰
'알고리즘 문제 > 백준' 카테고리의 다른 글
백준 12865번 평범한 배낭: Python 풀이 및 정답 코드 (0) | 2022.02.11 |
---|---|
백준 12026번 BOJ 거리: Python 풀이 및 정답 코드 (0) | 2022.02.07 |
백준 15989번 1, 2, 3 더하기 4: Python 풀이 및 정답 코드 (0) | 2022.02.06 |
백준 15486번: 퇴사 2 Python 풀이 및 정답 코드 (0) | 2022.01.29 |
백준 1890번: 점프 Python 풀이 및 정답 코드 (0) | 2022.01.27 |