Algorithm
백준 알고리즘 파이썬(Python) 2847번 게임을 만든 동준이
🤖 Play with Android 🤖
2021. 6. 2. 01:20
728x90
이 문제의 핵심은 입력받은 리스트를 reverse로 거꾸로 배열하는 것이다.
처음에 이 생각을 하지 못했을 때는 뒤에 숫자와 같아지는 경우 문제를 풀기 곤란했는데
배열을 거꾸로 뒤집으니 간단히 해결되었다.
n = int(input())
level_list = []
for i in range(n):
level = int(input())
level_list.append(level)
level_list.reverse() #리스트들을 역순서로 배치
cnt = 0 #다음 숫자와 비교해줄 변수
value = 0 #빼주는 숫자 변수
result = 0 #빼주는 숫자를 누적해 줄 변수
for i in range(len(level_list)):
if i == 0:
cnt = level_list[0] #cnt 에 초기값 부여
else:
if cnt <= level_list[i]:
value = (level_list[i] - cnt) + 1
result += value
cnt = cnt - 1
else:
cnt = level_list[i]
print(result)