[백준/BOJ]
문제 # https://www.acmicpc.net/problem/2847
주어진 단계별 점수를 오름차순으로 만들기위해 최소한으로 점수를 감소시켜야하는 횟수를 구하는 문제
내가 작성한 코드
import java.io.*;
import java.util.*;
public class BOJ2847 {
static int N; // 레벨의 수
static int[] scores; // 단계별 점수
static int cnt = 0;
static int highScore; // 점수를 몇 번 감소시켜야 하는지 기준이 되는 점수
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
scores = new int[N];
for(int i=0; i<N; ++i) {
scores[i] = Integer.parseInt(br.readLine());
}
highScore = scores[N-1];
for(int i=N-2; i>=0; --i) {
if(scores[i] <= --highScore) {
highScore = scores[i];
}else {
cnt += scores[i] - highScore;
scores[i] = highScore;
}
}
sb.append(cnt);
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
풀이 및 배운 점
'코딩테스트(Coding Test)' 카테고리의 다른 글
[구름톤챌린지] 8일차 통증 (0) | 2023.08.23 |
---|---|
[구름톤챌린지] 7일차 구름 찾기 깃발 (0) | 2023.08.23 |
[백준/BOJ] 1003 피보나치 함수 (0) | 2023.08.21 |
[구름톤챌린지] 6일차 문자열 나누기 (0) | 2023.08.21 |
[구름톤챌린지] 5일차 이진수정렬 (0) | 2023.08.18 |