[BOJ] 10989 수 정렬하기 3

Algorithm 2023. 1. 26. 01:10
반응형

 

카운팅 배열 

StringBuilder사용시 메모리 초과 

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

5752ms

StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

 

2272ms

StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));

 

using System;
using System.IO;
using System.Text;

namespace Assignment01
{
    class Program
    {
        private static int[] counting = new int[10_001];
        
        static void Main(string[] args)
        {   
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
            StringBuilder sb = new StringBuilder();
            
            int n = int.Parse(sr.ReadLine());
            
            //첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다
            //0은 안들어옴 
            for (int i = 0; i < n; i++)
                counting[int.Parse(sr.ReadLine())]++;
            
            //0은 입력 범위에 없음, 1부터 시작 
            for (int i = 1; i < 10_001; i++)
            {
                for (int j = 0; j < counting[i]; j++)
                {
                    sw.WriteLine(i);
                }
            }

            sw.Flush();
            sr.Close();
            sw.Close();
        }
    }
}
반응형

'Algorithm' 카테고리의 다른 글

이분탐색 과 Lower Bound , Upper Bound (상/하한선)  (0) 2023.01.26
[BOJ/C#] 10250 ACM 호텔  (0) 2023.01.26
[BOJ] 1654 랜선 자르기  (0) 2023.01.25
[BOJ] 1920 수 찾기  (0) 2023.01.25
[BOJ] 1343 폴리오미노  (0) 2023.01.24
: