반응형
🔺 문제
2847번: 게임을 만든 동준이
학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.*;
import java.io.*;
public class Main {
static int N, cnt;
static int[] levels;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
levels = new int[N + 1];
for(int i = 1 ; i <= N ; i++) {
levels[i] = Integer.parseInt(br.readLine());
}
for(int i = N - 1 ; i >= 1 ; i--) {
while(levels[i] >= levels[i + 1]) {
levels[i]--;
cnt++;
}
}
System.out.println(cnt);
}
}
|
cs |
✅ 해결 아이디어
✔ 그리디 (Line 18-23)
- 배열의 뒤쪽 인덱스부터 N-1부터 1까지 현재 위치의 배열값이 다음 위치의 배열값보다 크거나 같다면,
다음 위치 배열값보다 작아질 때까지 배열값을 1씩 빼고,
몇 번 감소시키면 되는지 나타내는 변수 cnt는 1씩 더한다.
💬 느낀 점
그리디 문제.. 쫄지 말자,,,,!!
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2023.09.05 |
---|---|
[백준/JAVA] 11000번: 강의실 배정 (0) | 2023.09.04 |
[백준/JAVA] 9466번: 텀 프로젝트 (0) | 2023.09.03 |
[백준/JAVA] 1261번: 알고스팟 (0) | 2023.09.01 |
[백준/JAVA] 14225번: 부분수열의 합 (0) | 2023.09.01 |