문제 출처 : https://www.acmicpc.net/problem/2751
import sys
n = int(sys.stdin.readline())
num=[]
for i in range(n) :
num.append(int(sys.stdin.readline()))
num.sort()
for i in num :
print(i)
n = int(input())
num=[]
for i in range(n) :
num.append(int(input()))
num.sort()
for i in range(n) :
print(num[i])
👉🏻 input 함수를 사용해서 구현하니깐 시간 초과가 떴다.
def merge_sort(array) :
if len(array)<=1:
return array
mid = len(array)//2
left = merge_sort(array[:mid])
right = merge_sort(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
elif j == len(right) :
while i < len(left) :
array[k] = left[i]
i +=1
k+=1
return array
n = int(input())
num = []
for _ in range(n) :
num.append(int(input()))
num= merge_sort(num)
for i in num :
print(i)
👉🏻 merge sort를 이용해서 구현했는데 그래도 시간 초과가 떴다.
👉🏻 놀랍게도 python3로 해서 안되는 문제가 pypy를 사용하면 풀리고 input으로 하면 안되는 문제가 sys.stdin.readline을 하면 풀린다.
이상하고 요상한 코딩세계...😥