링크 : https://www.acmicpc.net/problem/2847
- 문제
- 소요시간: 8분 25초

- 설계하기(접근방법)
1. 입력받기
레밸의 점수를 입력받는다
2. 구현하기
입력받는 점수 리스트를 역으로 순회한다
i 레밸이 i-1 레밸보다 큰 경우 continue
else 인 경우에는 (둘의 차이 + 1)만큼 cnt 에 더해주고, i-1 레밸을 i레벨보다 1작게 선언해준다
3. 출력하기
cnt를 출력한다
- 코드(출력)
import sys
input = sys.stdin.readline
n = int(input())
cnt = 0
level = []
for _ in range(n):
point = int(input())
level.append(point)
for i in range(n - 1, 0, -1):
if level[i] > level[i-1]:
continue
else:
cnt += (level[i-1] - level[i] + 1)
level[i - 1] = level[i] - 1
print(cnt)
- 얻어갈 부분
1. 그리디 기초를 다시 다졌다.
'알고리즘(백준) > 그리디' 카테고리의 다른 글
| [알고리즘/그리디] 15903번 : 카드 합체 놀이 - python (0) | 2024.10.09 |
|---|---|
| [알고리즘/그리디] 1449번 : 수리공 항승 - python (0) | 2024.03.06 |
| [알고리즘/그리디] 1049번 : 기타줄 - python (0) | 2024.03.05 |
| [알고리즘/그리디] 2170번 : 선 긋기 - python (0) | 2024.02.26 |
| [알고리즘/그리디] 2012번 : 등수 매기기 - python (0) | 2024.02.16 |