Core Concepts
리스트에 1, 2, 3, 4, 5만 포함되어 있을 때 선형 시간 복잡도 O(n)로 정렬하는 방법
Abstract
이 문제에서는 리스트에 1, 2, 3, 4, 5만 포함되어 있다는 사실을 활용하여 선형 시간 복잡도 O(n)로 리스트를 정렬하는 방법을 제시하고 있습니다.
먼저 각 숫자가 몇 번 등장하는지 세어 dictionary로 저장합니다. 이때 1, 2, 3, 4, 5만 등장한다는 것을 알고 있으므로 {1:0, 2:0, 3:0, 4:0, 5:0}과 같은 dictionary를 만들 수 있습니다.
그 다음 dictionary의 key를 순서대로 순회하면서 해당 숫자를 value만큼 출력하면 됩니다. 이렇게 하면 선형 시간 복잡도 O(n)으로 리스트를 정렬할 수 있습니다.
Stats
리스트 [1, 4, 2, 2, 3, 5, 4, 4, 1, 1, 3]에서 각 숫자의 등장 횟수는 다음과 같습니다:
1: 3
2: 2
3: 2
4: 3
5: 1