728x90
반응형
SMALL
✏️ 문제
문제 파악
마지막에 오는 점수가 제일 큰 점수가 되어야 하므로 배열을 끝에서부터 훑으며 마지막 점수를 기준으로 앞에 있는 점수들을 바로 뒤에 있는 점수보다 1점 더 작은 점수로 감소하는 방향으로 코드를 짰다.
알고리즘
- 그리디 알고리즘
코드
n = int(input())
de = 0
score = []
for i in range(n):
score.append(int(input()))
for i in range(n-1, 0, -1): # 뒤에서부터 읽어오기
if score[i-1] - score[i] > 0: # 크면 바로 뒤에 있는 점수보다 1점 작은 점수가 되도록 조정
de += (score[i-1] - score[i] + 1)
score[i-1] = score[i] - 1
elif score[i-1] - score[i] == 0: # 같으면 1점만 차이를 둠
de += 1
score[i-1] = score[i] - 1
print(de)
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 16435번 스네이크버드 (0) | 2024.07.17 |
---|---|
[Python] 1417번 국회의원 선거 (0) | 2024.07.17 |
[Python] 1213번 팰린드롬 만들기 (0) | 2024.07.16 |
[Python] 14916번 거스름돈 (0) | 2024.07.16 |
[Python] 1049번 기타줄 (0) | 2024.07.15 |