알고리즘
병합정렬 & pypy3
메밀국수가생각나
2021. 11. 6. 10:38
def mergeSort(array):
if len(array) <= 1:
return array
left, right = list(), list()
mid = len(array) // 2
left = mergeSort(array[:mid])
right = mergeSort(array[mid:])
i, j, k = 0, 0, 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
array[k] = left[i]
i +=1
else :
array[k] = right[j]
j+=1
k +=1
if i == len(left):
while j < len(right):
array[k] = right[j]
j += 1
k += 1
if j == len(right):
while i < len(left):
array[k] = left[i]
i +=1
k +=1
return array
n = int(input())
nList = []
for _ in range(n):
nList.append(int(input()))
nList = mergeSort(nList)
for data in nList:
print(data)
https://www.acmicpc.net/problem/2751
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
위 문제를 pypy3 을 활용해서 해결하면 되는데 python3은 해결되지않는다.