points = list(set(points))
되게 간단.. 꼭 기억하자.
리스트 중복 제거를 안하고 할 경우 116ms 소요.
중복 제거에 소요되는 시간보다 O(n^2)의 n 값 자체를 대폭 줄이는 게 훨씬 효율적이라는 의미.
사이즈 n인 list 형태의 자료가 주어졌을 때,
1. 이를 set에 넣을 경우 평균 n번의 해시 삽입이 이루어지므로 O(n)
2. 다시 list로 바꾸는 데 유니크 원소 m개에 대해 O(m), 최대 O(n)
따라서 합치면 O(n)이다.
O(n)을 투자하여 뒤의 O(n^2)을 O(m^2)으로 줄이는 게 훨씬 이득인 이유가 있었다.
ex) O(n^2), O(n + m^2)
-> n = 5, m = 3 ... 25 vs 14
매우 드라마틱하게 줄어든다!