元ネタ
前回も時間帯重複チェックの問題をPythonにて解きましたが、今回はその応用編を解いてみました。
@fumokmmさんのお題:時間帯重複チェック(応用編) - No Programming, No Life - です。
コード
今回もGistに挙げました。
感想
つかれたー。どこが重なっていると判断するか、という部分が難しかった。ってこれは問題そのものかw。
最初は入力された時間帯をすべて0,1で表現して、すべての時間帯の重なりをビット演算(and, xor..)やらでこねこねすれば、重なった時間帯も0,1で表現できるかなーと思ったのですが、これだと複数の時間帯が重なったときに対応できなくなると感じたので0,1で表現した時間帯をすべて足しあわせ、数が2以上になっている部分が重なった部分と判断し、出力するようにしました。
それにしてもきたないな。リスト包含とかもっと綺麗にかきたい。リスト包含表記のなかにforが2つとかになるとわけわからなくなってしまう。