Language/C#
[C#] 백준 10867번 중복 빼고 정렬하기
석영
2024. 4. 28. 10:23
반응형
[ 문제 ]
N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.
[ 코드 ]
1. 내 코드
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
int[] input = sr.ReadLine().Split().Select(int.Parse).ToArray();
input = input.OrderBy(x => x).Distinct().ToArray();
foreach (int i in input)
{
sw.Write($"{i} ");
}
sw.Flush();
sw.Close();
sr.Close();
2. 다른 사람 코드
using System.Text;
using System;
using System.IO;
using static System.Console;
namespace SortingWithoutRedundancy
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(OpenStandardInput());
int[] array = new int[2001];
sr.ReadLine();
int[] data = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
sr.Close();
int sInd = 2001, bInd = -1;
for(int i = 0; i < data.Length; i++)
{
int index = data[i] + 1000;
if (index > bInd) bInd = index;
if (index < sInd) sInd = index;
if(array[index] == 0) array[index] = 1;
}
StringBuilder sb = new StringBuilder();
for (int i = sInd; i <= bInd; i++)
{
if (array[i] == 1)
{
sb.Append(i - 1000);
if(i != bInd) sb.Append(" ");
}
}
WriteLine(sb);
}
}
}
내가 블로그 초창기부터 주구장창 사용한 LINQ 쿼리는 처리해야할 데이터 양이 많아질수록 느려지기 때문에 가공 후 사용을 하거나 대용량 데이터가 아닌 경우에는 간단해서 사용하기 편리하다.
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/10867
반응형