スキマで暗躍する的な何か

このブログ書くたびにTwitterのフォロワーが減ってるような気がするんですが、たぶん気のせいです。

COOL COOL COOL!?

CodeIQ「ワンライナーでクールに解く!」問題ですが、

どうやらPythonでクールに書けたらしいです。

どちらも評価「5」を頂きました。ありがとうございます。

私としては、さっぱりクールで無いので、なんだか違和感ですが、

その中で、新たな発見があったので、書いておきます。

 

https://codeiq.jp/ace/o_murayama/q1071 

(その2:11個の商品の中で条件に合う組み合わせを見つける)のほうは、

以下で。

codeiq 1071

なんの工夫もクールさも無いですね。。

というか、実際の開発だったら、可読性低くて怒られます(笑

 

問題は、

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を目指すブログ

より、リスト内包表記で、フィボナッチ数列を出力できるとのこと。

その手法を真似して。。

 

codeiq 1070

と、しました。

・・・・。

全くクールじゃないし!

最後に、リストの7個目をとって、7で割るとか、ヒドすぎる(笑

ですが、これ、私の中のリスト内包表記の可能性が広がった気がする。

(すいません。。私、Pythonに初めて触ってからまだ数カ月なのです。

 詳しいかたにとっては、そんなの常識やろって感じなのかも知れません。

 

 もしくは、根本的に、もっといい方法があるような気がしてなりません。

 と悩んでたところ、出題者様の解説に。。。書いてありました!

 どなたかかの、解答らしいですが、あぁ、それはクールかもって形でした。

 内容は秘密です。私の頭悪さが際立ってしまいます。

 単に独創的すぎて「5」を頂いたようです。

 そして、リスト内包表記である必要は全く無いことを思い知らされました(笑 

 

うーん。。

もしかしたらいろいろ問題のある問題だったのかも知れませんが、

Twitter上での解答した方々の反応含めて)

ちょっと面白かったので、良しということで。