python-algorithm

백준 2751 수 정렬하기 2

무적김두칠 2023. 9. 12. 00:57

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

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
ㅔㅛimport sys
 
if __name__ == '__main__':
    n = int(sys.stdin.readline())
    ans = [0* 2000001
    for i in range(n):
        ans[int(sys.stdin.readline())+1000000= 1
    for i in range(2000001):
        if ans[i] != 0:
            print(i - 1000000)
 
cs

사용된 알고리즘 : 계수 정렬

수의 범위가 제한되니 계수정렬을 사용했고

음수가 들어 올수 있으니 최대개수인 2백만개를 만들어 활용함

반응형