파이썬/코딩 테스트

[Do-it! 코딩 테스트-기초편] 019. k번째 수 구하기

caramel-bottle 2023. 11. 3.

문제

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

 

11004번: K번째 수

수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

www.acmicpc.net


접근

 


코드

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)

 

퀵 정렬을 사용하여 코드를 제출하면 시간 초과가 뜬다.

이유는 아직 모르겠다.

다음에 더 탐구해보자!

댓글