본문 바로가기
알고리즘/백준

99클럽 코테 스터디 16일차 TIL (2847번: 게임을 만든 동준이)

by Sondho 2024. 11. 12.

문제

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


학습 키워드

  • 그리디

 

풀이 및 코드

각 난이도의 점수가 증가해야하므로, 마지막 난이도부터 시작해서 현재 난이도가 다음 난이도보다 점수가 더 큰 경우 현재 난이도의 점수를 다음 난이도 점수의 -1로 변경하면 된다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);

       int N =  sc.nextInt();

       int[] scores = new int[N];
       for (int i = 0; i < N; i++) {
          scores[i] = sc.nextInt();
       }

       int answer = 0;
       for (int i = N - 2; i >= 0; i--) {
          int diff = 0;
          if (scores[i] >= scores[i + 1]) {
             diff = scores[i] - scores[i + 1] + 1;
          }
          answer += diff;
          scores[i] -= diff;
       }
       System.out.println(answer);
    }
}

댓글