[파이썬][백준 2750번] 수 정렬하기
1. 문제
[Bronze I] 수 정렬하기 - 2750
성능 요약
메모리: 30840 KB, 시간: 256 ms
분류
구현(implementation), 정렬(sorting)
문제 설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
출처: 백준, https://https://www.acmicpc.net/
2. 해결방법 시간복잡도
- 단순 코딩 O(N^2)
- 더 쉽게 O(NlogN)
3. 문제 해결 및 코드
-
주석을 참고하면서 이해를 돕습니다.
4. 알고리즘 및 해설
- 단순 반복문으로 해당 문제를 정렬하여 해결하였다.
- 반복문 2개를 통해 해당 위치 값과 다음 위치 값을 비교하여 만약 현재 위치값이 다음 위치값보다 큰 경우 서로 위치를 바꿔주는 형식이다.
- 이는 문제에서 오름차로 정렬이라는 조건에 맞게 한 것이다.
- 반복문을 통해 해당 값들이 모두 바뀌었다면 반복문을 통해 한줄씩 출력해준다.
5. 더 쉽게
N = int(input())
lst = []
for i in range(N): lst.append(int(input()))
for i in sorted(lst): print(i)
- sorted()를 쓰면 정렬을 좀 더 간편하게 사용할 수 있다.