[Python] 백준알고리즘 #2750

r1verfuture·2021년 12월 18일
0

백준알고리즘

목록 보기
57/110

📝 문제

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
profile
#iOS #Swift #Developer #Python

0개의 댓글