{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉DP〉처리량 임계치 최단 구간← 이전다음 →
#030 · DP중간슬라이딩 윈도우,구간 인덱스 반환

처리량 임계치 최단 구간

문제

서버 모니터링 시스템은 1초마다 그 초 동안 처리한 요청 수를 기록합니다. counts[i]는 i번째 초의 처리 건수입니다.

운영팀은 "연속된 몇 초 동안 처리 건수의 합이 threshold 이상이 되는 구간" 중 가장 짧은 구간을 찾아 트래픽 급증 시점으로 표시하려 합니다.

counts와 threshold가 주어질 때, 합이 threshold 이상인 가장 짧은 연속 구간의 [시작 인덱스, 끝 인덱스](둘 다 포함)를 반환하는 solution(counts, threshold) 함수를 작성하세요.

  • 가장 짧은 구간이 여러 개면 시작 인덱스가 가장 작은 구간을 반환합니다.
  • 조건을 만족하는 구간이 하나도 없으면 [-1, -1]을 반환합니다.

예시

counts threshold 결과 설명
[3, 1, 4, 1, 5, 9, 2] 13 [4, 5] 5 + 9 = 14, 길이 2가 최단
[8, 2, 2, 8] 8 [0, 0] 길이 1로 충분하며 앞쪽을 선택
[5, 1, 1, 5, 1, 1, 5] 7 [0, 2] 길이 3인 구간이 둘 있으나 앞쪽
[1, 2, 3] 100 [-1, -1] 전체를 합쳐도 부족

제약 조건

  • 1 ≤ counts.length ≤ 200,000
  • 1 ≤ counts[i] ≤ 10,000 (모두 양수입니다)
  • 1 ≤ threshold ≤ 1,000,000,000
  • 반환값은 길이 2의 number[]입니다.

시간 복잡도 목표: O(n)

공간 복잡도 목표: O(1)

테스트 케이스

예시 1: 길이 2가 최단
입력: counts = [3,1,4,1,5,9,2], threshold = 13
출력: [4,5]
예시 2: 길이 1 구간이 둘, 앞쪽 선택
입력: counts = [8,2,2,8], threshold = 8
출력: [0,0]
예시 3: 같은 길이면 시작 인덱스가 작은 쪽
입력: counts = [5,1,1,5,1,1,5], threshold = 7
출력: [0,2]
예시 4: 만족하는 구간 없음
입력: counts = [1,2,3], threshold = 100
출력: [-1,-1]
원소 하나가 정확히 임계치
입력: counts = [7], threshold = 7
출력: [0,0]
전체 구간이 정답
입력: counts = [2,2,2,2], threshold = 8
출력: [0,3]
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.