10989:ソート番号3[Python]


これは白準アルゴリズムの10989号の問題です.
  • 先にやろう
  • import sys
    numlist = []
    count = int(sys.stdin.readline())
    
    for i in range(count):
        num = int(sys.stdin.readline())
    
        if num >= len(numlist): #num이 리스트 개수보다 많을 때는 리스트를 늘린다 
            for i in range(num - len(numlist) + 1):
                numlist.append(0)
        if num < len(numlist): #리스트의 num 인덱스의 카운트를 올린다. 
            numlist[num] += 1
    
    for index, num in enumerate(numlist):	//출력
        if num != 0:
            for i in range(num):
                print(index)
    pypyの方が高速なので、pypyでコミットした結果、メモリが超過しました.私の計算によると、メモリは8 MBを超えていませんが、pythonでコミットすると、通過する文が表示されます.
    ゴミ収集器の違いによりpypyとpythonのメモリに差があります.
    https://stackoverflow.com/questions/45117672/pypy-large-memory-usage-compared-to-cpython