COOL COOL COOL!?
CodeIQ「ワンライナーでクールに解く!」問題ですが、
どうやらPythonでクールに書けたらしいです。
どちらも評価「5」を頂きました。ありがとうございます。
私としては、さっぱりクールで無いので、なんだか違和感ですが、
その中で、新たな発見があったので、書いておきます。
https://codeiq.jp/ace/o_murayama/q1071
(その2:11個の商品の中で条件に合う組み合わせを見つける)のほうは、
以下で。
なんの工夫もクールさも無いですね。。
というか、実際の開発だったら、可読性低くて怒られます(笑
問題は、
https://codeiq.jp/ace/o_murayama/q1070
(その1:小さい順で150円ずつ違う7個のマトリョーシカのうち
一番小さいものの価格を出す。全部の合計は10,500円)のほうです。
Pythonなので、リスト内包表記を使うしか思いつかなかったのですが、
あれ? 解けない。。何これ? ってなりました。
出題者の意図を察するに、「10500」「150」「7」の数値は
加工せずにそのまま使わないとならないのかな。。
と思いましたので、
10500から順に(150 * 1,150 * 2,150 * 3,・・・)を引いて行くしか
思いつかないのですが。。
リスト内包表記で、ループの一つ手前の数値ってどう保持するの??
という点が解りませんでした。
いろいろ調べてるうちに、
Pythonのリスト内包表記で色々な数列を作ってみた - アジャイルSEを目指すブログ
より、リスト内包表記で、フィボナッチ数列を出力できるとのこと。
その手法を真似して。。
と、しました。
・・・・。
全くクールじゃないし!
最後に、リストの7個目をとって、7で割るとか、ヒドすぎる(笑
ですが、これ、私の中のリスト内包表記の可能性が広がった気がする。
(すいません。。私、Pythonに初めて触ってからまだ数カ月なのです。
詳しいかたにとっては、そんなの常識やろって感じなのかも知れません。
もしくは、根本的に、もっといい方法があるような気がしてなりません。
と悩んでたところ、出題者様の解説に。。。書いてありました!
どなたかかの、解答らしいですが、あぁ、それはクールかもって形でした。
内容は秘密です。私の頭悪さが際立ってしまいます。
単に独創的すぎて「5」を頂いたようです。
そして、リスト内包表記である必要は全く無いことを思い知らされました(笑 )
うーん。。
もしかしたらいろいろ問題のある問題だったのかも知れませんが、
(Twitter上での解答した方々の反応含めて)
ちょっと面白かったので、良しということで。