기타/백준
백준 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);
*/
}
}