문제
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라는 라이브러리를 임포트하여 람다라는 것을 사용한 것 같다. 공부를 좀 더 해야겠다.
'알고리즘 문제' 카테고리의 다른 글
백준 알고리즘 1181번 단어 정렬 틀림!틀림!틀림! (0) | 2017.12.05 |
---|---|
백준 알고리즘 중앙값 측정 9426번 틀림! (0) | 2017.11.14 |
백준 알고리즘 벌집 2292번 (0) | 2017.11.03 |
백준 알고리즘 상수 2908번 (0) | 2017.11.02 |
백준 알고리즘 다이얼 5622번 (0) | 2017.11.02 |