[Baekjoon] - 2847. 게임을 만든 동준이

jjiani·2021년 2월 24일
0

Baekjoon

목록 보기
10/16

백준 - 문제 링크

import sys
input = sys.stdin.readline

n = int(input())
scores = []
for _ in range(n):
    scores.append(int(input()))

scores.reverse() # 리스트 뒤집기
max_score = scores[0]
minus = 0
for i in range(1, len(scores)): 
#scores[0]은 최고점이 되어야 하므로 range가 1부터 시작!
    while max_score <= scores[i]:
    	# 깎아야 하는 점수 저장
        minus += 1
        # 실제 레벨 점수에서는 -1
        scores[i] -= 1
    # 기준 점수 바꿔주고 진행하기!
    max_score = scores[i]

print(minus)

🔑 문제 이해가 좀 오래걸렸다,,, 문제 설명을 왜 그렇게 하세여,,,
그냥 높은 레벨에서 얻는 점수보다 낮은 레벨에서 얻는 점수가 높으면 안되는 것이고 만약 높은 경우 점수를 몇점 깎아야 최종적으로 봤을때 레벨마다 점수가 증가하는 형태가 되는지 묻는 문제이다!

이런경우 가장 높은 레벨의 점수가 기준이 되기때문에 reverse를 이용하여 점수를 거꾸로 뒤집었다!
처음에 while을 잘못써서 시간초과가 자꾸 나길래 뭔가했다... 종료조건을 잘 설정합시다~~! 무한루프조심!

profile
¡Bienvenido a mi velog!🐣

0개의 댓글