Algorithm/Python

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

🥭맹2 2021. 3. 5. 21:52
1. 문제

 

www.acmicpc.net/problem/2847

 

2847번: 게임을 만든 동준이

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

www.acmicpc.net

 

2. 접근방법

 

저는 앞에서부터 봤습니다.

대신 계속 앞에서부터 봐줘야함 

매우 비효율적이었습ㄴㅣ다

 

3. 파이썬 코드

 

def cal():
    answer = 0
    for i in range(N - 1):
        if lst[i] >= lst[i + 1]:
            answer += (lst[i] - lst[i + 1] + 1)
            lst[i] -= (lst[i] - lst[i + 1] + 1)
    return answer

def isPlus():
    for i in range(N-1):
        if lst[i] >= lst[i+1]:
            return False
    return True

N = int(input())
lst = []
for _ in range(N):
    lst.append(int(input()))

cnt = 0

while not isPlus():
    cnt += cal()

print(cnt)

 

 

4. 마치며

 

코드리뷰를 통해 다른 분들의 풀이를 알 수 있었습니다.

뒤에서부터 봐야합니다

 

N = int(input())
lst = [int(input()) for _ in range(N)]
answer = 0
for i in range(N-1, 0, -1):
    if lst[i] <= lst[i-1]:
        num = lst[i-1] - lst[i] + 1
        lst[i-1] -= num
        answer += num
print(answer)

 

그럼 바이 !

사진을 안넣으면 글 목록이 휑해서

'Algorithm > Python' 카테고리의 다른 글

[백준 1715] 카드 정렬하기  (0) 2021.03.26
[백준 16235] 나무 재테크  (0) 2021.03.16
[조합]  (0) 2021.03.04
[알고리즘] 순열  (0) 2021.02.07
[백준 16236] 아기 상어  (2) 2021.02.03