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)
복사했습니다!