PS/BOJ

[Python] 2847번 게임을 만든 동준이

s_omi 2024. 7. 16. 10:32
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 > BOJ' 카테고리의 다른 글

[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