📝 문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
⌨️ 입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
🖨 출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
⌨️ 예제 입력
5
5
2
3
4
1
🖨 예제 출력
1
2
3
4
5
📚 내가 제출한 코드 1
n = int(input())
nArr = []
for _ in range(n):
nArr.append(int(input()))
nArr.sort()
for i in nArr:
print(i)
✏️ 내가 제출한 코드 1 에 대한 설명
- 내장 함수인 sort() 를 사용한 방법이다.
- input() : 키보드로 입력한 값을 받는 함수
- range(a) : 0부터 a-1까지의 정수를 반환하는 함수
- sort() : 리스트를 오름차순으로 정렬하는 함수
- 메모리 : 29200 KB
- 시간 : 100 ms
- 코드 길이 : 111 B
📚 내가 제출한 코드 2
n = int(input())
nArr = []
for _ in range(n):
nArr.append(int(input()))
for i in range(1, n):
temp = nArr[i]
for j in range(i - 1, -1, -1):
if temp < nArr[j]:
nArr[j + 1] = nArr[j]
nArr[j] = temp
for num in nArr:
print(num)
✏️ 내가 제출한 코드 2 에 대한 설명
- 내장 함수인 sort() 를 사용하지 않고 삽입 정렬을 사용한 코드이다.
- 삽입 정렬 : 두번째 자료부터 시작하여 그 앞자료들과 비교하여 삽입할 위치를 정한 후 그 위치의 뒷자료를 한칸씩 밀고 정해진 위치에 삽입하는 방법 (시간 복잡도 : O(n²))
- input() : 키보드로 입력한 값을 받는 함수
- range(a) : 0부터 a-1까지의 정수를 반환하는 함수
- range(a, b) : a부터 b-1까지의 정수가 포함된 리스트를 반환하는 함수
- range(a, b, c) : a부터 b 되기 전까지 c씩 더한 값들을 반환하는 함수 (ex. range(5, -1, -1) = 5, 4, 3, 2, 1, 0)
- 메모리 : 29200 KB
- 시간 : 236 ms
- 코드 길이 : 247 B
📚 내가 제출한 코드 3
n = int(input())
nArr = []
for _ in range(n):
nArr.append(int(input()))
for i in range(n, 1, -1):
for j in range(i - 1):
if nArr[j] > nArr[j + 1]:
nArr[j], nArr[j + 1] = nArr[j + 1], nArr[j]
for num in nArr:
print(num)
✏️ 내가 제출한 코드 3 에 대한 설명
- 내장 함수인 sort() 를 사용하지 않고 버블 정렬을 사용한 코드이다.
- 버블 정렬 : 서로 인접한 두 원소를 비교하여 정렬하는 방법 (시간 복잡도 : O(n²))
- input() : 키보드로 입력한 값을 받는 함수
- range(a) : 0부터 a-1까지의 정수를 반환하는 함수
- range(a, b, c) : a부터 b 되기 전까지 c씩 더한 값들을 반환하는 함수 (ex. range(5, -1, -1) = 5, 4, 3, 2, 1, 0)
- 메모리 : 29200 KB
- 시간 : 272 ms
- 코드 길이 : 234 B