문제
https://www.acmicpc.net/problem/11004
접근
코드
import sys
N, K = map(int, sys.stdin.readline().split(' '))
li = list(map(int, sys.stdin.readline().split(' ')))
li.sort()
print(li[K - 1])
설명
def quick_sort(array, start, end):
if start >= end:
return
pivot = start
left = start + 1
right = end
while left <= right:
while left <= end and array[left] < array[pivot]:
left += 1
while right > start and array[right] >= array[pivot]:
right -= 1
if left > right:
array[right], array[pivot] = array[pivot], array[right]
else:
array[right], array[left] = array[left], array[right]
quick_sort(array, start, right - 1)
quick_sort(array, right + 1, end)
퀵 정렬을 사용하여 코드를 제출하면 시간 초과가 뜬다.
이유는 아직 모르겠다.
다음에 더 탐구해보자!
'파이썬 > 코딩 테스트' 카테고리의 다른 글
[Do-it! 코딩 테스트-기초편] 021. 버블 정렬 프로그램 2 - 미해결 (0) | 2023.11.03 |
---|---|
[Do-it! 코딩 테스트-기초편] 020. 수 정렬하기 2 (1) | 2023.11.03 |
[Do-it! 코딩 테스트-기초편] 018. ATM 인출 시간 계산하기 (0) | 2023.11.03 |
[Do-it! 코딩 테스트-기초편] 017. 내림차순으로 자릿수 정렬하기 (1) | 2023.11.03 |
[Do-it! 코딩 테스트-기초편] 016. 버블 정렬 프로그램 1 - 미해결 (0) | 2023.11.03 |
댓글