책: 파이썬 알고리즘 인터뷰
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
heap = list()
for n in nums:
heapq.heappush(heap, -n)
for _ in range(k-1):
heapq.heappop(heap)
return -heapq.heappop(heap)
def findKthLargest(self, nums: List[int], k: int) -> int:
heapq.heapify(nums)
for _ in range(len(nums) - k):
heapq.heappop(nums)
return heapq.heappop(nums)
def findKthLargest(self, nums: List[int], k: int) -> int:
return heapq.nlargest(k, nums)[-1]
def findKthLargest(self, nums: List[int], k: int) -> int:
nums.sort()
return nums[-k]
의외로 실행 속도에 있어서 큰 차이는 아니지만, '정렬' 방식이 가장 빠르다. 파이썬의 정렬 함수는 팀소트를 사용하며 c로 잘 짜여졌기 때문이다.