문제 링크
- http://icpc.me/17298
- http://icpc.me/17299
사용 알고리즘
- Stack
시간복잡도
- O(N)
풀이
17298 오큰수
monotone stack을 잘 사용해주면 됩니다.
배열의 맨 뒤부터 스택에 넣고, 스택을 항상 순감소상태를 유지시켜봅시다.
손으로 그려서 계산을 해보면 스택의 맨 위에 있는 원소가 Ai의 오른쪽에 있으면서 Ai보다 큰 수 중 가장 왼쪽에 있는 수가 됩니다.
-1을 처리해주는 것은 처음에 스택에 inf를 넣어주면 됩니다.
17299 오등큰수
기본적인 아이디어는 17298번과 같습니다. 다만 스택을 감소상태로 유지할 때 원소끼리 비교하는 것이 아닌 f함수값끼리 비교해야 합니다.
전체 코드
17298 오큰수
1 |
|
17299 오등큰수
1 |
|