집게사장의 꿈

백준 C# 2751 수정렬하기2 본문

기타/백준

백준 C# 2751 수정렬하기2

Krapboss 2024. 7. 23. 01:45
문제

 

2초 내에 입력받을 수를 오름차순으로 정렬해라.

 

 

 

해결

 

입력 받은 수를 NLogN으로 해결하려고 했으나, 지속되는 실패로 다른 방법을 찾음

 

StringBuilder를 사용하여 모든 문자열을 Join 하여 사용

 

실제 .Sort 함수는 최적화가 잘 되어 빠른 속도를 나타낸다고 함.

 

internal class _2751_수정렬하기2
{
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        List<int> list = new List<int>();

        for (int i = 0; i < n; i++)
        {
            list.Add(int.Parse(Console.ReadLine()));
        }

        list.Sort();

        StringBuilder sb = new StringBuilder(string.Join("\n", list));
        
        Console.WriteLine(sb);

        /*안됌
        for(int i = 0; i < n; i++)
        {
            int num = int.Parse(Console.ReadLine());

            int left = 0;
            int right = list.Count;
            
            while(left < right)
            {
                int mid = (left + right) / 2;

                if (list[mid] < num)
                {
                    left = mid+1;
                }
                else
                {
                    right = mid;
                }
            }

            list.Insert(left, num);
        }

        StringBuilder sb = new StringBuilder(); 
        
        foreach (int i in list)
        {
            sb.Append(i);
            sb.AppendLine();
        }

        Console.WriteLine(sb);
        */
    }
}

'기타 > 백준' 카테고리의 다른 글

백준 C# 7569 토마토 3차원  (0) 2024.07.31
백준 C# 5430 AC  (0) 2024.07.30
백준 C# _1676 팩토리얼 0의 개수  (0) 2024.07.22
백준 C# 1436 영화감독 숌  (1) 2024.07.22
백준 C# 1181 단어정렬  (0) 2024.07.21