K번째 수
백준 11004 : 문제링크
문제유형 : 정렬
설명
데이터의 크기가 5000000이다
병합정렬, 퀵 정렬, 힙 정렬을 사용해야한다.
python 기본 정렬 라이브러리로도 가능하다.
풀이
병합정렬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35def merge_sort(array):
if len(array) == 1:
return array
left = array[:mid]
right = array[mid:]
i, j, k = 0
while i < len(left) and j < len(right):
if left[i] < right[j]
array[k] = left[i]
left += 1
else:
array[k] = right[j]
right += 1
k += 1
if i == len(left):
while j < len(right):
array[k] = right[j]
j += 1
k += 1
elif j == len(right):
while i < len(left):
array[k] = left[i]
i += 1
k += 1
return array
n, k = map(int, input().split(' '))
array = list(map(int, input().split(' ')))
array = merge_sort(array)
print(array[k-1])
정렬 라이브러리
1
2
3
4
5
6n, k = map(int, input().split(' '))
array = list(map(int, input().split()))
array = sorted(array)
print(array[k-1])