[파이썬][백준 2752번] 세수 정렬
1. 문제Permalink
[Bronze IV] 세수정렬 - 2752Permalink
성능 요약Permalink
메모리: 30840 KB, 시간: 68 ms
분류Permalink
정렬(sorting)
문제 설명Permalink
동규는 세수를 하다가 정렬이 하고싶어졌다.
숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.
숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
입력Permalink
숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.
출력Permalink
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
출처: 백준, https://https://www.acmicpc.net/
2. 해결방법 시간복잡도Permalink
- 단순 코딩 O(N^2)
- 더 쉽게 O(NlogN)
3. 문제 해결 및 코드Permalink
A = list(map(int, input().split())) | |
def num(A): | |
n = len(A) | |
for i in range(n): | |
for j in range(i+1, n): | |
if A[i] > A[j]: | |
A[i], A[j] = A[j], A[i] | |
return A | |
print(*num(A)) |
-
주석을 참고하면서 이해를 돕습니다.Permalink
4. 알고리즘 및 해설Permalink
- 반복문을 통해 현재 위치 값과 다음 위치값을 비교하는 단순 반복문을 통한 정렬이다.
- 이후 정렬된 해당 리스트를 출력해준다.
5. 더 쉽게Permalink
A = list(map(int, input().split()))
for i in sorted(A): print(i, end = " ")
- 해당 문제는 sorted() 정렬 함수를 통해 좀 더 쉽게 풀이가 가능하다.