728x90
반응형

27972번: 악보는 거들 뿐
문제
https://www.acmicpc.net/problem/27972
27972번: 악보는 거들 뿐
키위새는 피아노를 잘 치고 싶었지만 악보를 볼 줄 몰랐다. 그러다 동영상 사이트에서 수열만 보고 피아노를 연주하는 동영상을 찾아냈다! 하지만 동영상에서 보여주는 수에 맞는 음을 누르자
www.acmicpc.net
풀이
음의 높낮이가 변하면 수를 1씩 늘리고 줄이기만 하므로 가장 긴 연속된 증가/감소하는 부분 수열의 길이가 정답이 된다. 연속이 끊길 때 길이 초기화를 1로 해야 함에 주의하자.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int m, a = 1, b = 1, ans = 0;
cin >> m;
vector<int> v(m, 0);
for (int i = 0; i < m; i++) {
cin >> v[i];
if (i == 0)
continue;
if (a == 1 && b == 1) {
if (v[i] > v[i - 1]) {
a++;
} else if (v[i] < v[i - 1]) {
b++;
}
} else if (a > 1) {
if (v[i] > v[i - 1]) {
a++;
} else if (v[i] < v[i - 1]) {
b++;
ans = max(ans, a);
a = 1;
}
} else {
if (v[i] > v[i - 1]) {
a++;
ans = max(ans, b);
b = 1;
} else if (v[i] < v[i - 1]) {
b++;
}
}
}
ans = max(ans, max(a, b));
cout << ans;
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 19568 직사각형 (6) | 2023.04.23 |
---|---|
[백준 / BOJ] C++ 11441 합 구하기 (2) | 2023.04.22 |
[백준 / BOJ] C++ 27970 OX (4) | 2023.04.21 |
[백준 / BOJ] C++ 15311 약 팔기 (0) | 2023.04.20 |
[백준 / BOJ] C++ 27969 I LOVE JavaScript (2) | 2023.04.19 |