문제 링크
https://www.acmicpc.net/problem/2751
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다.
수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제
입력
5
5
4
3
2
1
출력
1
2
3
4
5
정답 및 풀이
import sys
n = int(sys.stdin.readline())
numbers = [int(sys.stdin.readline()) for _ in range(n)]
numbers.sort()
for num in numbers:
print(num)
- import sys
- 입력 속도를 빠르게 하기 위해 sys 모듈 사용
- n = int(sys.stdin.readline())
- 정렬할 수의 개수 n을 입력받음
- arr = [int(sys.stdin.readline()) for _ in range(n)]
- 반복문을 이용해 n개의 정수를 입력받아 리스트로 저장
- arr.sort()
- 리스트를 오름차순으로 정렬
- for i in arr: print(i)
- 정렬된 값을 한 줄씩 출력
새롭게 배운 내용 및 느낀점
- sys.stdin.readline()
- 빠른 입출력을 위해 사용
- input() 보다 빠름
- arr.sort() , sorted()
- Python 의 내장 정렬 알고리즘(Timesort)
- 시간복잡도 O(N log N)
- 데이터가 많으면 시간 오래 걸림
'백준' 카테고리의 다른 글
| [백준] 1427 : 소트인사이드 (Python/파이썬) (0) | 2025.10.31 |
|---|---|
| [백준] 10989 : 수 정렬하기 3 (Python/파이썬) (0) | 2025.10.27 |
| [백준] 17609 : 회문 (Python/파이썬) (0) | 2025.10.25 |
| [백준] 10872 : 팩토리얼 (Python/파이썬) (0) | 2025.10.25 |
| [백준] 25305 : 커트라인 (Python/파이썬) (0) | 2025.10.25 |