본문 바로가기
Algorithm

[그리디/Greedy] 백준 2847 게임을 만든 동준이 - 파이썬(Python)

by jangThang 2022. 6. 28.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    2847번: 게임을 만든 동준이

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     레벨에 따라 오름차순으로 경험지를 설정해야 합니다.

     

    2022.01.26 - [Algorithm] - [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결

     

    [Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결

     경주마들을 자세히 보면, 양쪽 시야를 차단하는 안대를 끼고 있습니다. 이를 '차안대' 라고 합니다. 말의 눈은 양 옆에 달려 있어 시야가 '350도'나 됩니다. 자기 자신 빼곤 다 보이기 때문에, 다

    star7sss.tistory.com

     가장 높은 레벨부터 거꾸로 거슬러 올라가면서, 이전 레벨보다 경험지가 많으면 깎습니다.

     

     

     

    3. 코드

    import sys
    input = sys.stdin.readline
    
    # 입력
    n = int(input())
    level = []
    for _ in range(n):
        level.append(int(input()))
    
    # 그리디 알고리즘
    cnt = 0  # 레벨을 감소시키는 횟수
    post = level[-1] + 1  # 차후 레벨의 경험지
    for i in level[::-1]:
        # 차후 레벨보다 경험지가 높다면 낮춤
        if post <= i:
            cnt += i - post + 1
            post -= 1
    
        # 차후 레벨보다 경험지가 낮다면 넘어감
        else:
            post = i
    print(cnt)

     

     

    star가 되고나서 Tistory

    반응형

    댓글