반응형
백준 2751번 수 정렬하기 2
파이썬 풀이
병합 정렬로 풀었습니다.
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.readline
N = int(input())
arr = []
for i in range(N):
arr.append(int(input()))
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr)//2
L = merge_sort(arr[:mid]) # 분할
R = merge_sort(arr[mid:]) # 분할
mer = []
i = 0
j = 0
while i < len(L) and j < len(R): # 정렬 및 결합
if (L[i] > R[j]):
mer.append(R[j])
j += 1
else:
mer.append(L[i])
i += 1
if i != len(L):
mer += L[i:]
if j != len(R):
mer += R[j:]
return mer
mer = merge_sort(arr)
for i in mer:
print(i)
반응형
'Python > 백준' 카테고리의 다른 글
[백준 파이썬] 2805번 나무 자르기 (0) | 2021.05.02 |
---|---|
[백준 파이썬] 17219번 비밀번호 찾기 (0) | 2021.05.01 |
[파이썬 백준] 2750번 수 정렬하기 (0) | 2021.04.29 |
[백준 파이썬] 11053번 가장 긴 증가하는 부분 수열 (0) | 2021.04.27 |
[백준 파이썬] 2747번 피보나치 수 (0) | 2021.04.26 |