상세 컨텐츠

본문 제목

[백준] 2751번 - 수 정렬하기 2 (정렬) - 결과 포함

개발 공부 (알고리즘)

by letprogramming 2021. 2. 2. 01:05

본문

반응형

www.acmicpc.net/problem/2751

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

이전 문제와 크게 다르지 않은 문제이다.

차이점은 입력의 범위이다.

 

최대 1,000,000개의 숫자가 주어질 수 있고, 절댓값이 1,000,000보다 작은 수 이므로 음수도 포함된다.

 

아마 문제의 의도는 O(nlogn)의 시간 복잡도를 갖는 정렬 알고리즘의 효율성을 깨닫는 것으로 보인다.

 

하지만 파이썬의 내장 함수를 이용해도 충분히 빠른 시간에 문제를 해결할 수 있다.

 

중요한 문제는 정렬 알고리즘이 아닌 입력을 받는 함수의 문제였다.

정렬이 아닌 입력을 받을 때 input() 함수를 이용해서 "시간 초과" 결과를 받았다.

sys.stdin.readline().rstrip() 함수를 사용해서 시간을 줄일 수 있었다.

 

[소스 코드]

import sys
n = int(sys.stdin.readline().rstrip())

data = []
for _ in range(n):
    data.append(int(sys.stdin.readline().rstrip()))
data.sort()

for i in range(n):
    print(data[i])
반응형

관련글 더보기