티스토리 뷰

 

2847번: 게임을 만든 동준이

학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어

www.acmicpc.net


1. 문제 내용

 

 

2. 접근 방식

  • 현재 레벨 점수가 다음 레벨의 점수와 같거나 클 경우만 고려한다.

점수를 늘릴 수는 없기 때문이다. 따라서 현재 레벨의 점수가 그 다음 레벨의 점수와 같거나 크다면, 현재 레벨의 점수를 (다음 레벨 점수 - 1)로 바꾸면 된다. 예를 들어 현재 레벨의 점수가 7이고, 다음 레벨 점수가 5라면 현재 레벨의 점수는 5 -1 = 4가 되어야 한다. 이때 점수는 총 7 - 4 = 3번 감소되었다.

 

 

3. 정답 코드

n = int(input())
data = [int(input()) for _ in range(n)]

count = 0
for i in range(n-2, -1, -1):
    l = i + 1

    if data[i] >= data[l]:
        count += data[i] - (data[l] - 1)
        data[i] = data[l] - 1

print(count)
728x90