알고리즘/백준

[백준 알고리즘] 2751번: 수 정렬하기 2 (파이썬 / Python)

gyujh 2022. 8. 3. 17:57

문제

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

입력

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

출력

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

예제 입력

5
5
4
3
2
1

예제 출력

1
2
3
4
5

 

정답 코드
import sys
n = int(sys.stdin.readline())
a = []
for i in range(n):
    a.append(int(sys.stdin.readline()))
a = sorted(a)
for i in range(len(a)):
    print(a[i])

 

단순 정렬 문제이므로 파이썬의 경우 내장함수인 sorted로 풀 수 있다.

출력 형식의 경우 나는 for문을 사용했지만, join()을 사용할 수도 있다.

 

join()을 사용한 코드
import sys
n = int(sys.stdin.readline())
a = []
for i in range(n):
    a.append(int(sys.stdin.readline()))
    
print('\n'.join(map(str, sorted(a))))

 

 

주의

중복을 없애야 한다는 것이 아닌, 중복되지 않는 수가 주어진다는 것이다. 나는 중복을 없애야 하는 줄 알고 set()을 사용했다가 수정했다.

 

 


 

2751번: 수 정렬하기 2

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

www.acmicpc.net