문제 설명
        주어진 정수 배열에서 수를 정렬하는 문제입니다. 정수 배열의 길이는 N이며,
        각 정수는 0 이상 100 이하의 값을 가집니다.
        이 정수들 중에서 중복된 수가 있을 수 있으며, 이 중복된 수의 개수만큼 해당 수가 정렬되어 출력되어야 합니다.
    
입력 형식
        첫 번째 줄에는 정수 N (1 ≤ N ≤ 100,000)이 주어지고,
        두 번째 줄에는 N개의 정수가 공백으로 구분되어 주어집니다.
    
출력 형식
정렬된 정수들을 한 줄에 공백으로 구분하여 출력합니다.
예제 입력
5 3 4 3 2 1
예제 출력
1 2 3 3 4
문제 해결 과정
1. 문제 이해
        우리는 주어진 배열을 정렬하여 중복된 수 또한 고려하여 정렬된 형태로 얻어야 합니다.
        이 문제는 일반적인 정렬 알고리즘을 사용하여 쉽게 해결할 수 있습니다.
    
2. 문제 접근
        자바스크립트에서는 배열의 내장 메서드인 sort()를 사용하여
        손쉽게 배열을 정렬할 수 있습니다.
        sort() 메서드는 배열의 요소를 문자열로 변환하여 유니코드 값을 기준으로 정렬합니다.
        그러나 정수를 정렬하기 위해서는 비교 함수를 제공해야 합니다.
    
3. 구현 방법
        – 입력된 배열을 정렬하기 위해, 먼저 배열을 읽어들입니다.
        – 그 후, sort() 메서드와 비교 함수를 사용해 배열을 정렬합니다.
        – 마지막으로, 정렬된 배열을 출력합니다.
    
4. 자바스크립트 코드 구현
        // 입력 읽기
        const fs = require('fs');
        const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
        const N = parseInt(input[0], 10);
        const numbers = input[1].split(' ').map(Number);
        // 정렬
        numbers.sort((a, b) => a - b);
        // 출력
        console.log(numbers.join(' '));
    
5. 시간 복잡도
        제공된 배열을 정렬하는 데 걸리는 시간은 일반적으로 O(N log N)입니다.
        자바스크립트의 sort() 메서드는 퀵 정렬, 병합 정렬 등
        효율적인 정렬 알고리즘을 기반으로 동작하기 때문입니다.
    
6. 공간 복잡도
        추가적인 메모리 공간을 사용하는 것은 O(N)입니다.
        배열의 복사본을 만들거나 정렬된 결과를 저장하는 데 사용되기 때문입니다.
    
결론
        이 문제는 간단한 정렬 문제로, 자바스크립트의 내장 메서드를 활용하여 쉽게 해결할 수 있습니다.
        문제 해결 시 정렬 알고리즘의 시간 복잡도를 고려하면서 효율적인 코드를 작성하는 것이 중요합니다.
        이번 강좌를 통해 정렬 알고리즘과 자바스크립트의 sort() 메서드 사용법을 익히셨기를 바랍니다.