星田オステオパシー

プログラミング036 ロジックサマナー「圧縮」でハマる

筒に入れる問題が自分で考えて答えを出せた快感に引き続きトライだ!

何なに・・・データの圧縮をモデル化したものか・・・難しそう・・・うーん・・・

なるほど・・・連続したbとwの数を数えて、wから始まる場合は頭に0をつけて数字で表すと・・・うーん・・・文字列をリスト化して、先頭がbかwかで場合分けをして・・後はそれぞれbとwの数が分かればいけるんじゃないか?そのためにはリストの中の特定の文字列を数えるメソッドが欲しいけど・・・


あるやん! ほいほい、では・・・

これで良いんじゃないの?エレガント!

は・・・? なんでやねん! 提出前診断でもsuccessって出てるのに!

その後・・・ネットでなんとかヒントがないか?と調べたのですが、Pythonを使ってこの問題をクリアしててコードを公開してる人が見つからない。数時間、あーでもないこーでもないと頭をひねって・・・

時間切れ、仕事の時間ですよ。

で・・・施術の最中に私、気づいちゃった。あ・・問題はbとwの1組だけの場合だけだったけど、もしかしてbbbwwwbbbwwwwwとかそういう場合も対応しろってことか?と。

だとしたらこれはcountでは対処出来んな。面倒だけど、先頭から1文字づつ次の文字と同じかを判定して、同じ場合はカウントを追加して、違う場合はそれまでのカウントの数をリストに追加して最初から・・・って感じか。

帰宅後

こういうfor文の試行錯誤なんかの果に

Paiza.ioで途中の変数の変動中をモニターしながら、あーでもないこーでもないと作業をして







デケた!! ま、まあbとwの場合分けで先頭に0をつけるのを最後に持ってきたらコードは半分になるはずなんですけど、もう深夜1時を過ぎていたので・・・。wwwbbbbwwwwbbbbbbwwwとかでもバッチり出力できるぜ!当然、提出前判定もsuccessだし、これで行けなかったらもう知らん!

ふごごご・・・ぬぬぬぬ・・・いや、こっちが正しいやろ!

もう、こういう状態だったので「間違ってるのは問題の方だ」と勝手に勝利宣言して寝ました。

さて・・・実は、今書いてて思い至ったんですが・・・もし途中でbbbwbbbwwwwとなってた場合。僕は途中1文字しか出てこない場合は無視するように(敢えて)書いてたんですけど、これって圧縮って意味で言うと普通に「1」として出力するようにするべきなんじゃないでしょうかね?

いや、けど、そこんところちゃんとルールに書いてくれてない無い問題のほうがやっぱり悪いんじゃないか!? とりあえず明日やってみようか・・・

ちなみに、僕は今まで朝から晩まで同じ問題を考え続けたという経験が無かったのですが、今回それを行ったせいか・・この問題に取り組んだ翌日熱を出して寝込んでしまったのでした。こ、これが知恵熱か・・
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事