본문 바로가기

programming/algorithm

[algorithm] 백준 2751 - 수 정렬하기2

[algorithm] 백준 2751 - 수 정렬하기2

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준 2751번 문제 - 수 정렬하기2 의 풀이를 살펴보도록 하겠습니다.

 

풀이에 사용한 언어는 Python3 입니다.

 

문제 해석과 풀이 다 함께 살펴보시죠.

 

algorithm
알고리즘


백준 BAEKJOON 2751

 

백준 2751번 수 정렬하기2 문제 보러가기

 

반응형

 

문제 해석

 

주어지는 숫자들을 오름차순으로 정렬해서 하나씩 출력해내는것이 문제가 원하는 출력값이다.

하지만 조건이 하나 달리는데 모든 과정을 2초안에 수행해야한다.

힌트 : import sys

 

풀이

 

import sys

n = int(input())

list = []

for _ in range(n):
    list.append(int(sys.stdin.readline()))

list.sort()

for i in list:
    sys.stdout.write(str(i)+'\n')

 

풀이 해석 및 팁

 

input() 내장함수를 사용하는것 보다 더 빠르게 처리할 수 있는 sys.stdin.readline을 사용하면

시간내에 처리가 가능합니다.

마지막에 출력할 때 print 문을 사용해서 출력해도 시간적 여유가 남지만 sys를 임포트한 김에

출력도 sys.stdout.write()를 사용해서 문제를 해결해 보았습니다.

여기까지 백준 2751번 수 정렬하기2 문제 풀이였습니다.

 

이 문제는 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다.

 

병합 정렬, 힙 정렬 등이 이에 해당되는 정렬 알고리즘이지만 어려운 알고리즘이므로

 

지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다.

 

감사합니다.

반응형