같은 값은 답이 아니다
while top < x: pop
[2, 2, 3] → 두 2의 답은 3
동점 보존 후 더 큰 값을 기다린다.
같은 값이 들어왔을 때 pop할지 보존할지는 “더 큰 값”, “최댓값”, “가격이 떨어짐” 같은 비교 문장에서 갈린다.
while top < x: pop
[2, 2, 3] → 두 2의 답은 3
동점 보존 후 더 큰 값을 기다린다.
while back <= x: pop
[1, 3, 3, 2], k=3
동점 교체로 더 오래 남는 인덱스를 보존한다.
while price[top] > x: pop
[3, 3, 2] → 동점은 유지
동점 대기 후 실제 하락에서 기간을 확정한다.
| 문장 신호 | pop 조건 | 동점 처리 | 틀리는 신호 |
|---|---|---|---|
| strictly greater | top < x |
같은 값 보존 | 같은 값끼리 답으로 연결됨 |
| window max | back <= x |
새 인덱스로 교체 | 만료된 동점이 앞에 남음 |
| duration until drop | top > x |
하락 전까지 유지 | 같은 가격에서 기간이 끊김 |
결론: 단조 구조의 오답은 대부분 자료구조 선택이 아니라 비교 연산자 하나에서 시작한다.