data=[]
sorted_data=[]
def merge_sort(data):
if len(data)>1:
mid = len(data)//2
left_half = data[:mid]
right_half = data[mid:]
merge_sort(left_half)
merge_sort(right_half)
while 0 if left_half[0] >= right_half[0]:
sorted_data.append(left_half[0])
del left_half[0]
else:
sorted_data.append(right_half[0])
del right_half[0]
while 0 sorted_data.append(left_half[0])
del left_half[0]
while 0 sorted_data.append(right_half[0])
del right_haf[0]
return sorted_data
N=int(input())
for num in range(N):
data.append(int(input()))
merge_sort(data)
왜죠 ... merge_sort(left_half) 이부분에서 오류가 났다고 하는데 어떤부분이 이상한가요??
구글에 검색하면 누구나 익히는 알고리즘이니까 천재 아니어도 씹가능
ㅠㅠ 내 방식대로 풀고싶어
근데 되고 안되고 떠나서 슬라이싱이랑 del 0같이 앞에있는거 지우고 이러면 속도 엄청느릴껄
지우는거 말고 그럼 그냥 복붙하는게 더 빠를까요? 인터넷에 올라온 코드들은 삭제안하고 flag 증가시켜서 복붙하는 식으로 하더라구요 ㅠㅠ - dc App