또 뭐하지

백준 10989번 수 정렬하기 3 본문

I.sly()/10기 심화 - 프로그래밍

백준 10989번 수 정렬하기 3

mameul 2024. 11. 8. 20:53
728x90

■ 처음에 제출했던 코드

import sys

n = int(sys.stdin.readline())
l = []

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

l.sort()

for i in range(n):
    print(l[i])

메모리 초과가 떴다.. 5초 안에 정렬을 해야하는걸 보니 엄청 빠르게 해야하나보다.. 정렬알고리즘을 알아봤다. 

 

■ 참고 자료

https://east-star.tistory.com/10

 

정렬 알고리즘(Sorting Algorithm) 정복하기 - with JS

안녕하세요. 동쪽별입니다. 이번 포스트에서는 여러 정렬 알고리즘에 대해 살펴보고, 자바스크립트로 구현해보도록 하겠습니다. 목차 거품 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insert

east-star.tistory.com

https://seongonion.tistory.com/130

 

계수(카운팅) 정렬 (Counting sort) with 파이썬(Python)

카운팅 정렬, 혹은 계수 정렬은 O(n + k)의 시간복잡도를 가진 정렬이다. 여기서 다소 낯선 k는 정렬을 수행할 배열의 가장 큰 값을 의미한다. k가 단순히 상수로 취급되어 생략되지 않고 남아있는

seongonion.tistory.com

k가 10000까지로 제한되어 있어서 계수 정렬을 쓰기로 했다.

 

■ 최종 제출 코드

import sys

n = int(sys.stdin.readline())
l = [0] * 10001

for _ in range(n):
    l[int(sys.stdin.readline())] += 1


for i in range(10001):
    if l[i] != 0:
        for _ in range(l[i]):
            print(i)