인트로
여러 숫자들 사이에서 조건을 만족하는 연속된 숫자의 개수를 구하는 문제이다.
문제 이름은 층간소음이지만 어떠한 형태로 변형이 가능할 만큼 기본적인 문제라 알아보면 좋을 것 같다.
층간소음
문제
T편한 세상 아파트는 층간소음 발생 시 윗집의 발뺌을 방지하기 위해 애초 아파트를 지을 때 바닥에 진동센서를 설치했습니다.
이 센서는 각 세대의 층간 진동소음 측정치를 초단위로 아 파트 관리실에 실시간으로 전송합니다. 그리고 한 세대의 측정치가 M값을 넘으면 세대 호수와 작은 경보음이 관리실 모니터에서 울립니다.
한 세대의 N초 동안의 실시간 측정치가 주어지면 최대 연속으로 경보음이 울린 시간을 구하세요. 경보음이 없으면 -1를 출력합니다.
※ 입력설명
첫 줄에 자연수 N(10<=N<=100)과 M이 주어집니다.
두 번째 줄에 N개의 측정값(1000이하 자연수)이 초 순서대로 입력된다.
※ 출력설명
최대 연속 경보음이 울린 시간(초)을 출력하세요.
입력
10 90
23 17 120 34 112 136 123 23 25 113
출력
3
코드 설명
배열을 사용해도 되지만 for문을 n회 반복하며 숫자를 하나씩 받았다.
소음이 기준치(m)보다 크면 stack을 증가시키고 res와 비교해 최댓값으로 갱신한다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, m, noise, stack = 0, res = -1;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> noise;
if (noise > m)
if (++stack > res)
res = stack;
else
stack = 0;
}
cout << res;
}
'Algorithm > it 취업을 위한 알고리즘 문제 풀이' 카테고리의 다른 글
[Algorithm] 22. 온도의 최대값 (0) | 2021.08.05 |
---|---|
[Algorithm] 19. 분노 유발자 (0) | 2021.07.30 |
[Algorithm] 16. Anagram(아나그램 : 구글 인터뷰 문제) (0) | 2021.07.28 |
[Algorithm] 9. 모두의 약수 (0) | 2021.07.23 |
[Algorithm] 11. 숫자의 총 개수(small, large) (0) | 2021.07.22 |