코딩테스트

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

yeeejji 2024. 3. 19. 01:18
728x90

그리디 / 실버 4

🎮

https://www.acmicpc.net/problem/2847

 

2847번: 게임을 만든 동준이

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

www.acmicpc.net

 

 

내 풀이

 

N = int(input())
score = []
ans = 0

for _ in range(N):
    score.append(int(input()))

for i in range(N-1, 0, -1):
    if score[i-1] >= score[i]:
        new_score = score[i] - 1
        ans += score[i-1] - new_score
        score[i-1] = new_score

print(ans)

 

score = [5, 5, 5] 라면,

score[2]와 score[1]을 비교하고, score[1]와 score[0]을 비교해야 한다.

 

따라서, i는 N-1(마지막 인덱스)에서 시작해 1까지 1씩 감소하는 값이 된다.

 

쉬운 레벨(score[i-1])은 어려운 레벨(score[i])보다 무조건 점수를 적게 받아야 한다.

만약, 쉬운 레벨의 점수가 어려운 레벨의 점수보다 크거나 같다면, 어려운 레벨의 점수 - 1이 되도록 값을 변경한다.

'코딩테스트' 카테고리의 다른 글

[백준][Python] 14502 연구소  (1) 2024.03.20
[백준][Python] 2529 부등호  (1) 2024.03.20
[백준][Python] 22352 항체 인식  (0) 2024.03.18
[백준][Python] 2003 수들의 합 2  (1) 2024.03.17
[백준][Python] 13265 색칠하기  (2) 2024.03.17