※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 21965번 문제인 드높은 남산 위에 우뚝 선이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/21965
21965번: 드높은 남산 위에 우뚝 선
입력으로 주어진 수열 $A$가 산이면 "YES"를, 산이 아니면 "NO"를 출력한다.
www.acmicpc.net
수열 A를 앞에서부터 읽으면서, 처음으로 증가하지 않는 지점을 찾아내고 그 이후로 마지막 항까지 계속 이 수열이 감소하는지를 확인하는 것으로 문제를 해결할 수 있다.
연속한 두 항이 같다면 산이 아님에 유의해 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
bool inc = 1;
int old = 0;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N; cin >> N;
while (N--) {
int x; cin >> x;
if (x == old) {
cout << "NO";
return 0;
}
if (x > old) {
if (!inc) {
cout << "NO";
return 0;
}
else old = x;
}
else {
if (inc) {
inc = 0;
}
old = x;
}
}
cout << "YES";
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 21967 // C++] 세워라 반석 위에 (1) | 2022.09.21 |
---|---|
[BOJ 21966 // C++] (중략) (0) | 2022.09.20 |
[BOJ 21964 // C++] 선린인터넷고등학교 교가 (0) | 2022.09.18 |
[BOJ 25289 // C++] 가장 긴 등차 부분 수열 (0) | 2022.09.17 |
[BOJ 25285 // C++] 심준의 병역판정검사 (0) | 2022.09.16 |