{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉슬라이딩 윈도우〉생산 할당량 최단 연속 구간← 이전다음 →
#056 · 슬라이딩 윈도우중간슬라이딩 윈도우 (가변 크기)

생산 할당량 최단 연속 구간

문제

공장 생산 라인은 하루에 만든 제품 수를 production 배열에 날짜순으로 기록합니다. 품질 감사팀은 연속된 며칠 동안의 생산량 합이 할당량 quota 이상이 되는 가장 짧은 기간을 찾아 그 기간을 감사 대상으로 지정합니다.

조건을 만족하는 가장 짧은 연속 구간에 대해 [구간 길이, 시작 인덱스]를 반환하세요. 인덱스는 0부터 셉니다.

  • 길이가 같은 구간이 여럿이면 시작 인덱스가 가장 작은 것을 고릅니다.
  • 어떤 연속 구간으로도 할당량을 채울 수 없으면 [-1, -1]을 반환하세요.
function solution(production: number[], quota: number): number[]

예시

production quota 반환 설명
[3,1,4,1,5,9,2] 13 [2,4] 인덱스 4~5의 5+9=14
[1,1,1,9,1,1] 10 [2,2] 1+9와 9+1 모두 길이 2, 시작이 빠른 쪽
[6,1,1,6] 6 [1,0] 하루만으로 충족, 앞선 인덱스
[2,2,2,2] 20 [-1,-1] 전체 합이 8이라 불가능

제약 조건

  • 1 ≤ production.length ≤ 200,000
  • 1 ≤ production[i] ≤ 10,000
  • 1 ≤ quota ≤ 2,000,000,000

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

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

테스트 케이스

예시 1: 5+9=14 → 길이 2, 시작 4
입력: production = [3,1,4,1,5,9,2], quota = 13
출력: [2,4]
예시 2: 동률 길이 중 시작 인덱스가 작은 쪽
입력: production = [1,1,1,9,1,1], quota = 10
출력: [2,2]
예시 3: 하루로 충족, 앞선 인덱스 → [1,0]
입력: production = [6,1,1,6], quota = 6
출력: [1,0]
예시 4: 전체 합 부족 → [-1,-1]
입력: production = [2,2,2,2], quota = 20
출력: [-1,-1]
전체 구간이 정확히 할당량 → [4,0]
입력: production = [1,2,3,4], quota = 10
출력: [4,0]
8+3=11이 유일한 길이 2 구간 → [2,3]
입력: production = [5,1,2,8,3], quota = 11
출력: [2,3]
엣지: 원소 하나로 충족
입력: production = [7], quota = 7
출력: [1,0]
동일 길이 두 구간 중 앞선 시작 → [2,0]
입력: production = [4,4,4], quota = 8
출력: [2,0]
solution.ts
에디터 로딩 중…

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