パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

コンピュータ恐るべし

2019-09-17 | Python

IQの測定とか企業の試験などでよくみかける この中に正方形はいくつあるでしょう?みたいな問題を解く。

 

ざっくり説明すると

長方形の紙に縦、横ランダムな位置に、垂直、水平に線をいくつかひいて、その中に正方形がいくつありますか?という問題

 

最終的に縦と横、線で別れる所全部の長さを求めて、同じものを全部数えればいいのか

それなら簡単

と思ったけど一番難しいケースで縦横分割される線は縦180、横180

つまり縦横で全部の長さのパターン(重複もあり)は縦32942、横32942

この全マッチングをたぶん1秒ぐらいで答えないと行けない。

 

そんなもん無理だろう。別の解き方があるのか?

謎の公式とか、あみださなければいけないのかなーめんどいのー

これでレベルEASYの問題?とかおもいながら

 

とりあえず簡単なテストケースクリアしてそこから考えてみよう!と作ってみる

 

182x181回の長さを計算して32942個の配列に入れる処理を2回

32942回配列を回し、もう一つの32942個の中で同じ長さのものをカウント

これを あっさり解いてしまった。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。