SMALL
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
- 문제풀이
동적계획법을 사용하여 계산해준다.
두가지의 경우로 나눌 수 있다.
1경우: 1칸, 2칸, 4칸(두칸 가고 한칸 건너띄기)
2경우: 1칸, 3칸(한칸 가고 한칸 건너띄기)
- 코드 1
n = int(input())
stairs = [0]
dp = [0] * (n + 1)
for _ in range(n):
stairs.append(int(input()))
dp[1] = stairs[1]
if n >= 2:
dp[2] = stairs[1] + stairs[2]
for i in range(3, n + 1):
dp[i] = max(dp[i - 2] + stairs[i], dp[i - 3] + stairs[i - 1] + stairs[i])
print(dp[n])
- 후기
동적계획법은 문제가 어느정도 정형화된 느낌이다.
LIST
'백준 > 파이썬' 카테고리의 다른 글
[파이썬]백준 29719번: 브실이의 불침번 근무 (0) | 2023.09.25 |
---|---|
[파이썬]백준 1931번: 회의실 배정 (0) | 2023.09.25 |
[파이썬]백준 7785번: 회사에 있는 사람 (0) | 2023.09.25 |
[파이썬]백준 1157: 단어 공부 (0) | 2023.07.20 |