hoodyo   2년 전

import sys

n = int(input())
list_1 = [0] * 10001
for i in range(n):
    a = int(sys.stdin.readline())

    list_1[a] = list_1[a] + 1

for i in range(10001):
    if list_1[i] != 0:
        for j in range(list_1[i]):
            print(i)

대체 어느 부분에서 

오름차순으로 바꾸어준다는 코드가 들어간건지

이해를 할 수 없습니다. 제가 이해하기로는

쓰여진 인덱스대로 + 1 을 해주어

5면 6 , 2면 3... 이렇게 되고 마지막 줄에서는 그대로 출력 해주는 코드로 보이는데

이 코드가 어쨰서 맞는지 궁금합니다..! 

도움 부탁드려요!

djm03178   2년 전

각각의 수가 몇 번 입력된 것인지를 세는 코드입니다. 예를 들어 list_1[5]가 6이 되었다는 것은 입력 전체에 5가 여섯 번 있었다는 뜻입니다.

마지막에는 수가 작은 것부터 보면서 각각의 개수만큼 출력을 해줍니다. 예를 들어 입력 순서에 상관 없이 전체에서 1이 3개 있고 2가 2개, 5가 6개 있었다면 1을 세 번 출력하고, 2를 다섯 번 출력하고, 5를 여섯 번 출력하면 그게 곧 정렬을 한 것과 같은 결과가 됩니다.

댓글을 작성하려면 로그인해야 합니다.