백준(Python) 2847: 게임을 만든 동준이 풀이



문제

백준(Python) 2847: 게임을 만든 동준이 풀이


(사진을 누르면 문제로 이동합니다 )

풀이

백준 2847 : 이 문제에서 가장 중요한 것은, 입력 받은 레벨을 높은 레벨부터 점점 작아지게 만드는 것이다.

어차피 마지막 레벨이 가장 커야 하기 때문에, 마지막 레벨을 기준으로 삼아서, 더 낮은 레벨이 최소 1의 점수가 낮도록 점수를 깎아서 재할당을 해주면 된다. 그리고 점수가 깎인 만큼 카운트(cnt)해서 출력할 수 있도록 했다.


# 총 N 개의 레벨 입력 받기
N = int(input())
levels = [] #레벨을 담을 빈 리스트
for _ in range(N):
    level = int(input())
    levels.append(level)

# 레벨 높은 순부터 낮은 순으로 순회하며 이전보다 작아지게 만들기
    
levels.reverse() # 역순으로 재배치
cnt = 0
for i in range(1,len(levels)):
    if levels[i] >= levels[i-1]:
        minus = levels[i] - levels[i-1]+1
        levels[i] -= minus
        cnt += minus


# 출력
print(cnt)


CATEGORIES:

Tags:

No Responses

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다