본문 바로가기

알고리즘 문제

백준 알고리즘 2750번 수 정렬하기

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1<=N<=1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절대값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 

5
5
2
3
4
1

예제 출력 

1
2
3
4
5

반복할 횟수를 N으로 입력받는다. 빈 리스트를 만든다. N번 반복하면서 리스트에 값을 삽입한다. 리스트를 정렬한다. 리스트의 인자를 출력한다.


N = int(input())
list = []
for i in range (N):
list.insert(i,int(input()))
list.sort()
for i in list:
print(i)


위와 같이 제출했더니 메모리도 상대적으로 좀 잡아먹고 시간도 오래 걸렸다...


아래는 메모리와 시간을 적게 사용한 사람의 코드를 써보겠다.


import sys readline = lambda: sys.stdin.readline() N = int(readline()) A = [] for _ in range(N): A.append(int(readline())) A.sort() for i in A: print(i)


sys라는 라이브러리를 임포트하여 람다라는 것을 사용한 것 같다. 공부를 좀 더 해야겠다.