반응형
21318번: 피아노 체조
피아노를 사랑하는 시은이는 매일 아침 피아노 체조를 한다. 시은이는 N개의 악보를 가지고 있으며, 1번부터 N번까지의 번호로 부른다. 각 악보는 1 이상 109 이하의 정수로 표현되는 난이도를
www.acmicpc.net
부분합 문제였습니다.
풀이방법
1. 악보 1부터 실수를 할 때마다 배열 d의 i+1번에 실수횟수를 1더해서 저장해줍니다.
2. d[end] - d[start]시 해당 구간 사이의 실수횟수를 구할 수 있습니다.
Code
#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int n, t, piv, score[100001], d[100001];
int main(){
fastio;
cin >> n;
for(int i = 1; i <= n; i++) cin >> score[i];
for(int i = 1; i <= n; i++){
if(score[i] > score[i+1]) piv++;
d[i+1] = piv;
}
cin >> t;
while(t--){
int start,end;
cin >> start >> end;
cout << d[end] - d[start] <<'\n';
}
}
'Algorithm > DP(Dynamic Programing)' 카테고리의 다른 글
(C++) - 백준(BOJ) 15988번 : 1, 2, 3 더하기 3 (0) | 2021.05.03 |
---|---|
(C++) - 백준(BOJ) 2225번 : 합분해 (0) | 2021.04.26 |
LCS(Longest Common Subsequence) (0) | 2021.03.31 |
(C++) - 백준(BOJ) 2565번 : 전깃줄 (0) | 2021.03.30 |
(C++) - 백준(BOJ) 9184번 : 신나는 함수 실행 (0) | 2021.03.30 |