python-for-coding-test
python-for-coding-test copied to clipboard
개미전사
안녕하세요. 공부하는데 궁금한게 생겨 질문 드립니다. 코린이라 질문 수준이 낮아도 양해 부탁드립니다. 코드를 보면
for i in range(2, n): 여기서 범위가 왜 (2,n+1)이 아니고 (2,n)인지 모르겠습니다. 2부터 시작하는건 알겠는데 n범위까지가 이해가 가지 않습니다.
정수 N을 입력 받기
n = int(input())
모든 식량 정보 입력 받기
array = list(map(int, input().split()))
앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화
d = [0] * 100
다이나믹 프로그래밍(Dynamic Programming) 진행 (보텀업)
d[0] = array[0] d[1] = max(array[0], array[1]) for i in range(2, n): d[i] = max(d[i - 1], d[i - 2] + array[i])
계산된 결과 출력
print(d[n - 1])
이미 해결하셨겠지만 n+1로 했을 경우에는 index 값에서 벗어나기 때문에 n+1이 아닌 n으로 한 것으로 생각됩니다!