최대 1 분 소요

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. 해결방법 시간복잡도

  1. 단순 코딩 O(N^2)
  2. 더 쉽게 O(NlogN)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. 단순 반복문으로 해당 문제를 정렬하여 해결하였다.
  2. 반복문 2개를 통해 해당 위치 값과 다음 위치 값을 비교하여 만약 현재 위치값이 다음 위치값보다 큰 경우 서로 위치를 바꿔주는 형식이다.
    • 이는 문제에서 오름차로 정렬이라는 조건에 맞게 한 것이다.
  3. 반복문을 통해 해당 값들이 모두 바뀌었다면 반복문을 통해 한줄씩 출력해준다.

5. 더 쉽게

N = int(input())
lst = []
for i in range(N): lst.append(int(input()))
for i in sorted(lst): print(i)
  • sorted()를 쓰면 정렬을 좀 더 간편하게 사용할 수 있다.