Skip to content

Commit 2080e83

Browse files
committed
0409
1 parent 032fc47 commit 2080e83

File tree

2 files changed

+41
-26
lines changed

2 files changed

+41
-26
lines changed

.idea/workspace.xml

Lines changed: 16 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
import sys
2+
23
input = sys.stdin.readline
3-
N=int(input().rstrip())
4-
floor=[]
4+
N = int(input().rstrip())
5+
floor = []
56
for _ in range(N):
67
floor.append(int(input().rstrip()))
7-
dp=[]
8-
# 1개씩 3칸을 연속해서 못밟으므로 전전칸 까지 값을 비교해줘야함
9-
dp.append(floor[0])#계단 0를 올라오는 경우 최대값
10-
dp.append(max(floor[0]+floor[1],floor[1])) #계단 1을 올라오는 경우 값
11-
dp.append(max(floor[0]+floor[2],floor[1],floor[2])) #계단 2을 올라오는 경우 값
12-
# i번 째 계단까지의 최대 가중치 합" =
13-
# "case_B : i - 2번째 계단까지의 최대 가중치 합 + 현재 계단의 가중 치"와
14-
# "case_A : i- 3번째 계단까지의 최대 가중치 합 + i - 1번째 계단의 가중치 + 현재 계단의 가중 치" 중 더 큰 값
158

16-
#4번째 계단 부터 계산
9+
dp = []
10+
if len(floor)>=3:
11+
# 1개씩 3칸을 연속해서 못밟으므로 전전칸 까지 값을 비교해줘야함
12+
dp.append(floor[0]) # 계단 0를 올라오는 경우 최대값
13+
dp.append(max(floor[0] + floor[1], floor[1])) # 계단 1을 올라오는 경우 값
14+
dp.append(max(floor[0] + floor[2], floor[1] + floor[2])) # 계단 2을 올라오는 경우 값
15+
# i번 째 계단까지의 최대 가중치 합" =
16+
# "case_B : i - 2번째 계단까지의 최대 가중치 합 + 현재 계단의 가중 치"와
17+
# "case_A : i- 3번째 계단까지의 최대 가중치 합 + i - 1번째 계단의 가중치 + 현재 계단의 가중 치" 중 더 큰 값
18+
19+
# 4번째 계단 부터 계산
20+
if len(floor)==3:
21+
print(dp.pop())
22+
else:
23+
for i in range(3, N):
24+
dp.append(max(dp[i - 3] + floor[i - 1] + floor[i], dp[i - 2] + floor[i]))
1725

18-
for i in range(3,N):
19-
dp.append(max(dp[i-3]+floor[i-1],+floor[i], floor[i]+dp[i-2]))
26+
print(dp.pop())
27+
else:
28+
cac=0
29+
for f in floor:
30+
cac+=f
31+
print(cac)

0 commit comments

Comments
 (0)