백준 2579 계단 오르기
https://www.acmicpc.net/problem/2579
이것도 해설을 봤다.
https://sungmin-joo.tistory.com/18
끝점을 어떻게 처리해야되는지 몰랐는데, 그럴필요가없었다.
그냥 한계단 한계단씩 그전꺼 더한거의 max를 입력해주면 되는것이였다.. dp처럼 생각하는 사고방식을 아직 갖추지 못해서 생각이 안된다
그런데 저 해설 사이트에 나온대로 하면 indexerror가 난다.
계단수가 1, 2 일때는 조건을 따로 정해줘야 한다. arr[1], arr[2]가 각각 없기때문
n = int(input())
arr = []
dp = []
for _ in range(n):
arr.append(int(input()))
if n == 1:
print(arr[0])
elif n == 2:
print(arr[0]+arr[1])
else:
dp.append(arr[0])
dp.append(max(arr[0]+arr[1], arr[1]))
dp.append(max(arr[0]+arr[2], arr[1]+arr[2]))
for i in range(3, n):
dp.append(max(dp[i - 2] + arr[i], dp[i - 3] + arr[i] + arr[i - 1]))
print(dp.pop())
Author And Source
이 문제에 관하여(백준 2579 계단 오르기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chss3339/백준-2579-계단-오르기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)