https://www.acmicpc.net/problem/2751
Problem
- N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
조건
- 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
- 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
SOL
정렬을 하면되는 문제이다. 물론 python에는 sort()라는 nlogn의 우수한 정렬알고리즘을 기본적으로 제공하고 있다.
- 정렬은 종류가 많고, 그 중에 성능이 보장되고 널리 쓰이는 것중 하나가 퀵정렬이다.
import sys
input = sys.stdin.readline
N= int(input())
arr=[int(input().rstrip()) for _ in range(N)]
arr.sort()
for ar in arr:
print(ar)
하지만, 이건 quick sorting ,merge sorting등을 구현할 수 있냐고 묻는 문제가 아니였나 싶다.
( 내친김에 다음 글은 정렬에 대해서 써볼까?) 일단, 최소한 어느정도의 시간복잡도를 내부적으로 갖고있는지 알고 쓰자!
'알고리즘 문제(SOL)' 카테고리의 다른 글
[백준/2167/파이썬] 2차원 배열의 합 (0) | 2022.01.27 |
---|---|
[백준/1026/파이썬] 보물 (0) | 2022.01.27 |
[백준/1184/파이썬] 귀농 (0) | 2022.01.26 |
[백준/10828/파이썬] 스택 (0) | 2022.01.26 |
[백준/2607/파이썬] 비슷한 단어 (0) | 2022.01.26 |