서비스 모니터링 시스템은 이벤트 스트림에서 같은 이벤트가 너무 촘촘하게 반복되는지 감시합니다.
이벤트 코드가 발생 순서대로 담긴 배열 events와 감시 간격 k가 주어집니다.
서로 다른 두 위치 i < j에 대해
events[i] === events[j] (같은 이벤트가 다시 발생했고)j - i ≤ k (그 사이 간격이 k 이하)인 쌍이 하나라도 있으면 경보를 울려야 합니다.
경보를 울려야 하면 true, 아니면 false를 반환하는 solution(events, k) 함수를 작성하세요.
events = ["LOGIN", "PAY", "LOGIN", "VIEW"], k = 2
→ true
LOGIN이 0번과 2번에서 발생했고 간격이 2로 k 이하다.
events = ["LOGIN", "PAY", "LOGIN", "VIEW"], k = 1
→ false
같은 이벤트 쌍의 간격이 2라서 k = 1을 넘는다.
events = ["PUSH", "QUIT", "READ", "PUSH"], k = 2
→ false
PUSH가 두 번 나오지만 간격이 3이다.
events = ["Z", "Z"], k = 0
→ false
서로 다른 위치의 간격은 최소 1이므로 k = 0이면 경보는 절대 울리지 않는다.시간 복잡도 목표: O(N)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.