![article thumbnail image](https://blog.kakaocdn.net/dn/bi0Fhz/btq6l0G0FlD/rHyjMTrd1pUh6LWhzdwEkK/img.png)
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)
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 13413번 오셀로 재배치 (0) | 2021.06.08 |
---|---|
백준 알고리즘 파이썬(Python) 19941번 햄버거분배 (0) | 2021.06.03 |
백준 알고리즘 파이썬(Python) 20365번 블로그2 (0) | 2021.06.01 |
백준 알고리즘 파이썬(Python) 20300번 서강근육맨 (0) | 2021.05.27 |
백준 알고리즘 파이썬(Python) 20115번 에너지드링크 (0) | 2021.05.14 |