ALGORITHM
백준 21318 피아노 체조 (Java)
공부하는_다온
2023. 4. 17. 18:04
1. 문제 링크
21318번: 피아노 체조
피아노를 사랑하는 시은이는 매일 아침 피아노 체조를 한다. 시은이는 N개의 악보를 가지고 있으며, 1번부터 N번까지의 번호로 부른다. 각 악보는 1 이상 109 이하의 정수로 표현되는 난이도를
www.acmicpc.net
2. 문제 및 입출력예제
3. 문제 풀이
- 악보 난이도를 입력받으면서 앞의 난이도보다 낮은 경우 값을 1만큼 추가한다.
- dp로 값을 누적하면서 배열에 저장하고 입력 받은 곡 사이 값의 차이를 출력한다.
4. 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[] music = new int[N+1];
int[] dp = new int[N+1];
int num = 0;
String[] split = br.readLine().split(" ");
for(int i=1;i<N+1;i++) {
num = Integer.parseInt(split[i-1]);
music[i] = num;
if(music[i-1]>music[i]) {
dp[i] = dp[i-1]+1;
}
else {
dp[i] = dp[i-1];
}
}
int T = Integer.parseInt(br.readLine());
for(int t=0;t<T;t++) {
split= br.readLine().split(" ");
int x = Integer.parseInt(split[0]);
int y = Integer.parseInt(split[1]);
sb.append(dp[y]-dp[x]).append("\n");
}
System.out.println(sb);
}
}