본문 바로가기

백준

[백준]2751번: 수 정렬하기 2(파이썬)

https://www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

import sys
num = int(input())
num_list=list()
for i in range(num):
  num_list.append(int(sys.stdin.readline()))
num_list.sort()

for i in num_list:
  print(i)

성공~

파이썬의 sort함수를 사용해서 너무 쉽게 성공한 것 같아서 버블정렬로 다시 작성해보았다.

import sys
num = int(input())
num_list=list()
for i in range(num):
  num_list.append(int(sys.stdin.readline()))

for i in range(num):
  for j in range(num-i-1):
    if num_list[j] > num_list[j+1]:
      num_list[j], num_list[j+1] = num_list[j+1], num_list[j]

for i in num_list:
  print(i)

음 시간초과..

찾아보니까 파이썬의 sort함수는 퀵정렬 방식으로 정렬한다고 한다.

혹시 모르니까 퀵정렬 공부해놔야겠다..