難易度が上がってきました。(C#)市名の辞書順、点数が高い順にレストランの番号を出力してください。これはもう実務そのまま、典型的なデータ加工のスキルが問われています。次の手順に分解するとよいでしょう。desc実装はプラットフォームごとのライブラリに左右されるソートは次の方法が考えられます。不可能ソートを実装するには、各言語プラットフォームで用意されているライブラリを使うことになると思います。ソート条件を引数で指定する方法もライブラリごとに異なるためそれに従ってください。実装は次のようになります。業務のように手堅く書くなら、エンティティ型を用意するとよいでしょう。クエリ式を使っています。使う程度で済む場合は見やすいコードになると思います。}}この問題の場合はとくにエンティティ型を作成しなくても、匿名型で間に合います。慣れればメソッドチェーンでつなげて書けます。query));}}他にトリッキーな解法も存在しますが、データ加工は手堅い方法で実装するのがよいでしょう。(C#)各ユーザの「友達の友達」の人数を求めてください。自分自身や友達は、「友達の友達」に含みません。前問と同様、まずは入力データをいい感じの形式にしておきます。集計するための具体的な実装方法は、次の通りいくつか考えられます。関数型っぽい実装をすると次のようになります。メソッドでグルーピングができます。メソッドで集合の差を求めています。});Console.WriteLine(f2.Except(f1).Count());}フラグの配列で実装すると次のようになります。x));}以上、利きコード選手権で出題した5問の解法について説明しました。全体的に解答を関数型プログラミングのパラダイムで作成してきましたが、実務でもデータの加工・集計に関して簡潔に書ける場面が多いと思います。JavaScript)同じ色を持つ隣接するスライムが融合すると、最終的に存在するスライムは何匹となるか。同じ文字が連続した区間の数だけをカウントします。方針としては、1文字ずつ読み込んで、直前と異なる文字ならカウントすればよいです。これを実現するために以下の方法が考えられます。(範囲に注意)前者は少し長くなるので後者だけコードを示します。