취준/코딩테스트
백준 2579 (python): 계단 오르기
린구
2024. 3. 17. 15:48
반응형
t = int(input())
stairs = [0]
d = [0 for _ in range(t+1)]
for _ in range(t):
stairs.append(int(input()))
for i in range(1, t+1):
if i <= 2:
d[i] = d[i-1] + stairs[i]
else:
d[i] = max(d[i-3] + stairs[i-1] + stairs[i], d[i-2] + stairs[i])
print(d[-1])
이틀에 걸쳐서 풀었다..
처음에는 flag 변수 선언해서 풀었는데.. dp 가 그럴리가 없다는 걸 깨닫고 코드 수정함 -,-
t = int(input())
stairs = []
flag = True
d = [0 for _ in range(t)]
for _ in range(t):
stairs.append(int(input()))
d[0] = stairs[0]
for i in range(1, t):
if i == 1:
d[i] = d[i-1] + stairs[i]
flag = False
else:
if flag == False:
d[i] = d[i-2] + stairs[i]
if d[i] <= d[i-1]:
flag = True
d[i] = d[i-1]
print(max(d))
기존 코드 ㅋㅋㅋ 마지막 max(d)도 어이없음
마지막 계단 무조건 밟아야 된다잖니?!
dp는 점화식 세우는 게 가장 중요하다!
그림 그려서 생각 잘 해보자 글구! d 배열은 본인 포함해야 한다!!!
반응형