{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉DP〉환율 지표 최장 안정 구간← 이전다음 →
#094 · DP어려움구간 DP / 음수 개수 홀짝 추적

환율 지표 최장 안정 구간

문제

어떤 통화의 일별 지표가 정수 배열 rates로 주어집니다. rates[i]는 i일차 지표이며 음수·0·양수가 모두 나올 수 있습니다.

연속한 며칠을 하나의 구간으로 묶었을 때, 그 구간에 속한 모든 지표의 곱이 양수이면 그 구간을 "안정 구간"이라고 부릅니다. (곱이 0이거나 음수이면 안정 구간이 아닙니다.)

가장 긴 안정 구간의 길이를 반환하는 solution(rates)를 구현하세요. 안정 구간이 하나도 없으면 0을 반환합니다.

예시

rates 반환값 설명
[3, -1, -4, 2] 4 음수가 두 개라 전체 곱이 양수
[-2, 5, 7] 2 전체는 음수, [5, 7]이 최장
[4, 0, -3, -6, 8] 3 0을 건너뛴 [-3, -6, 8]
[-5] 0 안정 구간 없음

제약 조건

  • 1 ≤ rates.length ≤ 100,000
  • -50 ≤ rates[i] ≤ 50

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

테스트 케이스

예시 1: 음수 두 개 → 전체가 안정 구간
입력: rates = [3,-1,-4,2]
출력: 4
예시 2: 앞의 음수를 버림
입력: rates = [-2,5,7]
출력: 2
예시 3: 0으로 끊긴 뒤 구간
입력: rates = [4,0,-3,-6,8]
출력: 3
예시 4: 안정 구간 없음
입력: rates = [-5]
출력: 0
0만 있는 입력
입력: rates = [0,0]
출력: 0
음수 3개 → 마지막 음수를 버려 길이 5
입력: rates = [1,-2,3,-4,5,-6]
출력: 5
음수만 짝수 개
입력: rates = [-1,-1,-1,-1]
출력: 4
0 뒤 구간의 앞 음수를 버려야 최장
입력: rates = [7,-3,0,-2,-8,-1,6]
출력: 3
전부 양수
입력: rates = [2,3,4]
출력: 3
solution.ts
에디터 로딩 중…

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