-
[백준] 2751 수 정렬하기 2백준 Online Judge 2021. 8. 31. 17:08
GitHub - DAWUNHAN/Algorithms-and-DataStructure: Algorithms and DataStructure with Python
Algorithms and DataStructure with Python. Contribute to DAWUNHAN/Algorithms-and-DataStructure development by creating an account on GitHub.
github.com
문제 해설
- n개의 숫자를 입력 받은 뒤, 순서대로 출력하라.
- 데이터 개수가 최대 1,000,000개 일 때, 시간 복잡도 o(NlogN)의 정렬 알고리즘을 이용해야 한다.
병합 정렬을 직접 구현하는 방법
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[i]: 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()) array = [] for _ in range(n): array.append(int(input())) array = merge_sort(array) for data in array: print(data)
파이썬 내장 함수로 구현하는 방법
n = int(input()) array = [] for _ in range(n): array.append(int(input())) array = sorted(array) for data in array: print(data)
GitHub - DAWUNHAN/Algorithms-and-DataStructure: Algorithms and DataStructure with Python
Algorithms and DataStructure with Python. Contribute to DAWUNHAN/Algorithms-and-DataStructure development by creating an account on GitHub.
github.com
'백준 Online Judge' 카테고리의 다른 글
[백준] 1236 성 지키기 (0) 2021.09.14 [백준] 11004 k번째 수 (0) 2021.08.31 [백준] ⭐⭐ 7490 0만들기 (0) 2021.08.31 [백준] 1074 z (재귀 함수) (0) 2021.08.31 [백준] 1074 z (재귀 함수) (0) 2021.08.31