Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 파이썬
- golang struct
- MongoDB Realm
- 백준 12761
- 하둡
- 백준 사이트
- 자바 디자인 패턴
- hadoop
- 12761 돌다리
- 백준 파이썬
- 자바 디자인패턴
- 몽고디비 렘
- http 완벽가이드
- 백준 12761번
- flask
- String 함수
- 도메인 주도 개발 시작하기
- 우분투
- 정렬
- go
- domain driven develop
- 트리 순회
- 고 배열
- golang
- 자바
- 백준
- ddd
- 도메인 주도 개발
- http 개념
- 12761번 돌다리
Archives
- Today
- Total
개발바닥
BOJ_11058 [ 크리보드 ] [ 파이썬 ] 본문
반응형
문제
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
문제 해결 방법
DP를 활용해서 문제를 해결할 수 있다.
먼저 초기값으로 i번째 인덱스에는 A를 i번 누른 횟수로 초기화를 하고
버퍼에 있는 값을 복사하기 까지 총 3번에 커맨드 횟수가 필요하므로
컨트롤 v를 한번 두번 세번 누른 최대값을 비교 후 갱신해주면 된다.
그 이유는 이미 앞에서 최대값을 갱신했기때문에 커맨드 명령횟수 3번까지만 체크해주면 된다.
dp[i] = max ( dp[i-3]*2, dp[i-4]*3, dp[i-5]*4) // v를 한 번 누른경우 , 두 번 누른경우 , 세 번 누른경우
소스 코드 보기
https://github.com/jokerKwu/BOJ_Algorithm/blob/master/python/BOJ_11058.py
jokerKwu/BOJ_Algorithm
Contribute to jokerKwu/BOJ_Algorithm development by creating an account on GitHub.
github.com
import sys
input = sys.stdin.readline
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])
반응형
'[ Algorithm ] > [ PYTHON ]' 카테고리의 다른 글
BOJ_14002 [ 가장 긴 증가하는 부분 수열 4 ] [ 파이썬 ] (0) | 2020.06.19 |
---|---|
BOJ_12865 [ 평범한 배낭 ] [ 파이썬 ] (0) | 2020.06.13 |
BOJ_2864 [ 5와 6의 차이 ] [ 파이썬 ] (0) | 2020.06.01 |
BOJ_12761 [ 돌다리 ] [ 파이썬 ] (0) | 2020.05.29 |
BOJ_1463 [ 1로 만들기 ] [ 파이썬 ] (0) | 2020.05.26 |
Comments