🙆♀️
C#で二次元配列をソートする。
paizaラーニングの二次元配列をソートする問題です。
pythonなら数行で終わるのですが、、、C#で難航したのでメモです。
Python バージョン
sample.py
n = int(input())
ab = [None]*n
for i in range(n):
[a, b] = input().split()
a = int(a)
b = int(b)
ab[i] = [a, b]
ab.sort(reverse=True)
for i in range(n):
[a, b] = ab[i]
print(a, b)
C#バージョン
sample.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
// 2次元listの定義
var list = new List<List<int>>();
// listに要素を代入する
for (int i = 0; i < n; i++)
{
// 1次元の要素の配列
var rowArr = Console.ReadLine().Split(' ');
// i 行目の要素に List を作成する
list.Add(new List<int>());
//2次元listに要素を追加
list[i].Add(int.Parse(rowArr[0]));
list[i].Add(int.Parse(rowArr[1]));
}
// List を配列に変換する
var array = list.Select(line => line)
.Select(line_child => line_child.ToArray())
.ToArray();
// ソートする
Array.Sort(array, StructuralComparisons.StructuralComparer);
Array.Reverse(array);
// 出力
for (int i = 0; i < n; i++)
{
Console.WriteLine($"{array[i][0]} {array[i][1]}");
}
}
}
Discussion