https://www.acmicpc.net/problem/2847
- 예제 입력1
3
5
5
5
- 예제 출력1
3
- 예제 입력2
4
5
3
7
5
- 예제 출력2
6
- 문제 접근
- 입력
- 레벨의 수 N (1 ~ 100)
- 클리어 시 점수 (1 ~ 19,999)
- 항상 답이 존재하는 경우만 주어짐
- 출력
- 점수를 몇 번 감소 시키면 되는 지 출력
- 입력
- 문제 해결
- 점수 1 감소 시 1씩 카운트
- 가장 마지막을 시작으로 마지막 - 1이 마지막보다 작아지게, 마지막 -2가 마지막 - 1 보다 작아는 것을 반복
- 기존 풀이 [메모리 : 14208 KB / 시간 : 108 ms]
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int levelCount = Integer.parseInt(br.readLine());
int[] level = new int[levelCount];
for(int i = 0; i < levelCount; i++)
level[i] = Integer.parseInt(br.readLine());
int count = 0;
for(int i = level.length - 2; i >= 0; i--){
while(level[i] >= level[i+1]){
level[i]--;
count++;
}
}
System.out.println(count);
}
'Coding Test > Problem Number' 카테고리의 다른 글
[Java] 미로 만들기 [2665번] (0) | 2024.08.05 |
---|---|
[Java] 택배 배송 [5972번] (0) | 2024.08.05 |
[Java] 카드 문자열 [13417번] (0) | 2024.08.03 |
[Java] 거스름돈 [14916번] (0) | 2024.08.03 |
[Java] 상자넣기 [1965번] (0) | 2024.08.02 |