Problem Solving

[BOJ11004] K번째 수 (K-th smallest)

dododoo 2020. 3. 19. 13:40

1. 문제

https://www.acmicpc.net/problem/11004

2. Note

알고리즘 수업에서 분할 정복을 다룰 때 배운 K-th smallest 문제와 정확히 같은 문제였다.
분할 정복 문제를 푸는 김에 복습해보려고 풀었는데 생각보다 구현에 애를 먹었다.
복습하면서 다음과 같은 주제들을 다시 살펴보았다.

2.1. 시간복잡도가 O(n)임을 증명하기 위해

  • 수학적 귀납법(Mathmetical Induction)
  • 정수론의 Well-Ordering Property
  • 귀류법

2.2. 컨테이너의 일부만 정렬하는 함수 (std::sort와 다름에 주의)

  • std::partial_sort

2.3. 피봇보다 작은, 같은, 큰 컨테이너로 나누는 기법

  • 3-way partition

3. Reference

Wikipedia: Dutch national flag problem (3-way partition)

'Problem Solving' 카테고리의 다른 글

[BOJ10816] 숫자 카드 2  (0) 2020.03.21
[BOJ2261] 가장 가까운 두 점  (0) 2020.03.20
[BOJ2749] 피보나치 수 3  (0) 2020.03.16
[BOJ9663] N-Queen  (0) 2020.03.02
[BOJ10814] 나이순 정렬  (0) 2020.03.01