今日は皆さんと一緒に頭の体操をしようと思います。
プログラミングって何?小難しいこと言わないでよ!って方も、頑張って最後まで読んでくれたらきっと今日はいいことがあります!
【問題】トランプから、10~Kを取り除いて1~9のみの36枚のカードを残し、この中からランダムに6枚を取り出したものについて考えます。
取り出した6枚について、2枚一組とし「2桁の数」を3個つくり、その合計を求めます。
例:5 9 2 7 5 3 の6枚
- 59+27+53=139
- 57+39+25=121 etc
選ばれた6枚のカードを指定するので、全てのパターンについて試行したとき合計の最大値がいくつになるか求めなさい。
[1]291873
[2]652774
【何を求めたいのかをよく考える】
全パターン書き出して計算すればまぁ答えは出るのですが、求められてるのは「全パターンを書き出せ」ではないので、ちょっと考えたらものすごい無駄であることはわかると思います。そんな面倒臭いことはしたくありません。
求めたいのは「最大値」なので、次のようにすると一瞬で答えが出ます。
- 与えられた6桁について、大きい順に並べ替える。
- 1~3番目を10の位、4~6番目を1の位としたときが最大値
[1] 291873 → 987321 → (9+8+7)×10 + (3+2+1) = 240 + 6 = 246
[2] 652774 → 776542 → (7+7+6)×10 + (5+4+2) = 200 + 11 = 211
「面倒臭い」は「効率化」の第一歩
直感的に「面倒臭い」と感じることって、実は無駄を省く絶好の機会なんです。この例は数学的な問題でしたが、日々の生活や仕事でも一緒。
私自身、面倒臭いことは嫌いなので、「面倒臭い」を解消するお手伝いはお任せください!(結局売り込みかっ!)