코딩테스트/백준

[18014] 나이순 정렬(C#)

봉두두 2022. 3. 30. 15:02
728x90

단순 Sorting방식으로만 정렬해봤다면 고개를 갸우뚱 할 수 있는 문제.

제한시간 :  15mins
시간복잡도 : O(NlogN)
var varN = Console.ReadLine();
int intN = varN == null ? 0 : int.Parse(varN);
// Map형식으로 접근 시 input에서 키중복이 있을 수 있으니까, Tuple로 접근한다.
List<Tuple<int, string>> tList = new List<Tuple<int, string>>();

for (int i = 0; i < intN; i++)
{
    var vartmp = Console.ReadLine();
    string strTmp = vartmp == null ? "" : vartmp;
    string[] arrstrTmp = strTmp.Split(' ');

	// 아래와 같이 Tuple.Create로 Tuple 객체 생성
    var thisUser = Tuple.Create<int, string>(int.Parse(arrstrTmp[0]), arrstrTmp[1]);
    tList.Add(thisUser);
}

// Item1 기준으로 오름차순 정렬
tList = tList.OrderBy(t => t.Item1).ToList(); 
foreach (var t in tList)
    Console.WriteLine("{0} {1}", t.Item1, t.Item2);
728x90
728x90