문제
백준 1849
설명
오름차순으로 순열을 채우고, i
번째 순열 값이 t
라고 하자.
t
개의 빈자리 이후에 i
를 넣으면 됨.
- 왜냐하면
i
보다 큰 값이 t
개가 이전에 와야하는데, 이후에 채울 값은 i+1
로 더 큰 값이므로, 딱 t
개의 공간만 앞에 남기면 되기 때문임.
- 그러면 이 공간은
i
보다 크게 될 이후의 값들이 채우게 될 것임.
문제는 빈공간이 앞에 몇개 남았는지 세는 것인데, 이를 Segment Tree 로 해결하면 됨.
시간 복잡도
O(n*Log(n))
코드
댓글남기기