『0度に一番近い温度(天麩羅)を探してね!』というゲーム。
見た目がアレで敬遠してたラムダ式を、1mmくらい理解した気がする。
あと、テスト項目が実は多かったという事実。
テストケース3まで合格すればポイント全部とれると思ってたらそうじゃなかった。
using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. **/ class Solution { static void Main(string[] args) { int N = int.Parse(Console.ReadLine()); // the number of temperatures to analyse string TEMPS = Console.ReadLine(); // the N temperatures expressed as integers ranging from -273 to 5526 string result = null; // Write an action using Console.WriteLine() // To debug: Console.Error.WriteLine("Debug messages..."); Console.Error.WriteLine(N); //テンプラ数 Console.Error.WriteLine(TEMPS); //テンプラの熱さリスト result = CloseToZero(N,TEMPS); //0度に一番近いテンプラの温度を取得 Console.WriteLine(result); } //0度に一番近いテンプラの熱さを取得する //int N : テンプラ数 //string T : テンプラの熱さリスト public static string CloseToZero(int N, string T) { if(N == 0) return "0"; //テンプラの数が0なら0を返す int[] tmps = Array.ConvertAll(T.Split(' '), (string s) => int.Parse(s)); //string配列をint配列に変換 Array.Sort(tmps); //昇順にソートさせることで-5と+5でも+5の方を取得させる int nz = tmps[0]; //0に一番近い熱さ(初期値は一番冷たい) for(int i = 1; i < tmps.Length; i++) { if(tmps[i]*tmps[i] <= nz*nz) nz = tmps[i]; //配列を順番にチェックしていく } return nz.ToString(); } }
- 出版社/メーカー: ローランズ・フィルム
- 発売日: 2008/05/23
- メディア: DVD
- 購入: 1人 クリック: 19回
- この商品を含むブログ (1件) を見る