😈 알고리즘/🍃 인프런 #1

🙏 18. 층간소음

Buᐢ༝ᐢy 2023. 3. 8. 18:00

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비 - 인프런 | 강의

모든 문제에 대한 저작권은 위 강의에 있습니다.

문제

T편한 세상 아파트는 층간소음 발생 시 윗집의 발뺌을 방지하기 위해 애초 아파트를 지을 때 바닥에 진동센서를 설치했습니다. 이 센서는 각 세대의 층간 진동소음 측정치를 초단위로 아 파트 관리실에 실시간으로 전송합니다. 그리고 한 세대의 측정치가 M값을 넘으면 세대호수와 작은 경보음이 관리실 모니터에서 울립니다. 한 세대의 N초 동안의 실시간 측정치가 주어지면 최대 연속으로 경보음이 울린 시간을 구하세요. 경보음이 없으면 -1를 출력합니다.

입력 설명

첫 줄에 자연수 N(10<=N<=100)과 M이 주어집니다. 두 번째 줄에 N개의 측정값(1000이하 자연수)이 초 순서대로 입력된다.

출력 설명

최대 연속 경보음이 울린 시간(초)를 출력하세요.

입력 예제 1

10 90
23 17 120 34 112 136 123 23 25 113

출력 예제 1

3

제출 코드

2023년 2월 7일

#include <iostream>

using namespace std;

bool CheckVibration(int standard, int vibration)
{
		if (standard < vibration)
				return true;
		else
				return false;
}

int main()
{
		int N = 0;
		int standard = 0;
		cin >> N >> standard;
	
		int seconds = 0;
		int max = 0;
		for (int i = 0; i < N; i++)
		{
				int vibration = 0;
				cin >> vibration;
		
				if (CheckVibration(standard, vibration))
				{
						seconds++;
						if (seconds > max)
								max = seconds;
				}
				else
						seconds = 0;
		}
		cout << max;
	
		return 0;
}

풀이

저장할 만한 **int**형 변수 **max**를 만들어주고 범위에 미치지 못하면 **seconds**를 **0**으로 할당해주어 **max**를 쉽게 찾을 수 있도록 했다.