본문 바로가기
  • 개발 / 공부 / 일상
C++

(C++) [백준] 한조서열정리하고옴ㅋ

by JJeongHyun 2023. 1. 10.
반응형

https://www.acmicpc.net/problem/14659

 

14659번: 한조서열정리하고옴ㅋㅋ

첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이

www.acmicpc.net

 

 

요약 )

  1. 첫 번째로 입력한 수는 봉우리의 개수 이자 활잡이들의 수이다.
  2. 두 번째로 입력했던 봉우리의 개수만큼의 높이를 입력한다.
    1. 봉우리의 개수는 1 이상 30,000 이하.
    2. 높이는 1 이상 100,000 이하.
    3. 입력한 왼쪽 봉우리부터 오른쪽으로 하나씩 비교하면서 자기보다 낮으면 처지 했다고 한다.
    4. 만일 본인 보다 오른쪽의 수(높이)가 높으면 더 강한 활잡이라고 생각하고 기준이 바뀐다.
    5. 그 봉우리 개수 중에서 가장 많이 처지 하는 수를 출력해주면 된다.

 

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;


int main() {
	
	int n, a, mmax, cnt;

	cin >> n;
	vector<int> v;

	for (int i = 0; i < n; i++) {
		cin >> a;
		v.push_back(a);
	}

	a = 0, mmax = 0, cnt = 0;

	for (int i = 0; i < n; i++) {
		if (v[i] < a)
			cnt++;
		else {
			mmax = max(mmax, cnt);	
			cnt = 0;	
			a = v[i];	
		}
	}
	mmax = max(mmax, cnt); 

	cout << mmax << endl;
}

'C++' 카테고리의 다른 글

(C++) [백준] 핸드폰 번호 궁합  (0) 2023.01.10
(C++) [백준] 피보나치 비스무리한 수열  (2) 2023.01.10
(C++) [백준] 전자레인지  (0) 2023.01.10
(C++) [백준] 369  (0) 2023.01.10
(C++) [백준] 약수 구하기  (0) 2023.01.10