본문 바로가기

ALGORITHM

백준 21318 피아노 체조 (Java)

1. 문제 링크

 

21318번: 피아노 체조

피아노를 사랑하는 시은이는 매일 아침 피아노 체조를 한다. 시은이는 N개의 악보를 가지고 있으며, 1번부터 N번까지의 번호로 부른다. 각 악보는 1 이상 109 이하의 정수로 표현되는 난이도를

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

  1. 악보 난이도를 입력받으면서 앞의 난이도보다 낮은 경우 값을 1만큼 추가한다.
  2. 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);
	}	
}

 

'ALGORITHM' 카테고리의 다른 글

백준 12865 평범한 배낭 (Java)  (0) 2023.04.18
백준 2206 벽 부수고 이동하기 (Java)  (0) 2023.04.17
백준 10775 공항 (Java)  (0) 2023.04.16
백준 2573 빙산 (Java)  (1) 2023.04.16
백준 1149 RGB 거리 (Java)  (0) 2023.04.15