IT 프로그래밍/객체지향프로그래밍

[C++] 12번

기술1 2024. 4. 17. 21:55
반응형

극소값 카운트 출력

#include <iostream>
#include <string>
using namespace std;


int main()
{
	int data[100];
	int n = 0, k;

	while (true)
	{
		cin >> k;
		if (k == -1)
			break;
		data[n++] = k;
	}

	int count = 0;
	if (data[0] <= data[1])
		count++;
	
	for (int i = 1; i < n - 1; i++)
	{
		if (data[i - 1] >= data[i] && data[i] <= data[i + 1])
			count++;
	}

	if (data[n-2] >= data[n - 1])
		count++;

	cout << count << endl;


}

길이가 100인 data 배열을 선언합니다. 이거는 각 입력받은 수의 앞 뒤를 비교해야 하기 때문에 하나하나씩 입력할 때마다 해결을 할 수 없는 구조입니다.

 

변수 n을 0으로 초기화하고 while 루프를 사용하여 사용자로부터 입력을 받습니다. 입력이 -1이면 루프를 탈출하며 data[n++]를 통해 입력 받는 수가 몇개인지 알아냅니다. 

 

그 다음 for문을 통해 구해줍니다. 먼저 앞 뒤의 if문을 통해 맨 첫째 자리수와 끝 자리 수를 비교해서 출력을 해주고 중간에는 for문을 통해 앞뒤를 분석해서 출력해주는 함수를 만듭니다. 

 

 

반응형