[백준] #2751 수 정렬하기2(python)

수영·2022년 7월 17일

백준

목록 보기
6/117
post-thumbnail

📌문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

백준 2751번 문제

💡Idea

파이썬에는 정렬을 위한 리스트의 메소드와 내장 함수가 존재합니다.
간단하게 해당 메소드를 사용해서 문제를 해결해보았습니다.

💻코드

import sys

input = sys.stdin.readline

n = int(input())
num_list = [int(input()) for x in range(n)]
num_list.sort()

for x in num_list:
    print(x)

📝코드 설명

num_list에 정렬해야 할 숫자들을 리스트 형태로 저장한 뒤, sort()를 사용하여 정렬을 합니다.

  • 파이썬의 sort는 정렬 알고리즘으로 '팀 소트(Tim Sort)'를 사용합니다.
    팀 소트 알고리즘은 팀 피터스(Tim Peters)라는 사람이 만든 알고리즘으로, merge sort와 insertion sort의 아이디어를 적절히 섞어 만든 알고리즘입니다.

⏰ Tim Sort의 시간 복잡도

  • O(NlogN)

변수

  • n : 정렬해야 하는 수 개수
  • num_list : 정렬하고자 하는 숫자 리스트

Reference

파이썬에서는 어떤 알고리즘을 사용할까?
Tim Sort

profile
하고 싶은 건 그냥 죽도록 합니다

0개의 댓글