めんどくさがり屋な私がAtCoderを1年間続けてみた

よくサボります。愚痴多めです。楽をしたいです。

AtCoder 9日目

今日やったこと

・ABC189 A-Slot →○

・ABC189 B-Alcholic →×

 

今日学んだこと

・最大値、最小値のテストや、境界値(〜より or 以上など)くらいは考えてコーディングすること。

・小数は扱いが複雑になるので、整数に変換して扱うと良い

f:id:shinchan03:20210404222753p:plain

 

A問題もB問題も内容は一見して簡単そうでしたが、B問題が通せず終了。しつこいくらいにREとWAを繰り返してて恥ずかしい。。

小数を整数に変換して考えなかったばかりに例外ケースが多く生まれてしまったようで、ひとつ勉強になりました。

 

今日は宣言通り、朝5:00起床→朝6:00〜8:00(or 7:00)を取り組み時間として実行しました。

結論から言うと、、、

 

最高!!!!!

 

朝やるべきことをやって過ごす1日ってこんなに充実感あるんだ・・・って感じ。

どんな過ごし方をしようとも、「でも朝にやるべきことはやってるから大丈夫なんだな」って思えるのはでかい!1日の充足感が非常に高くなりました。

 

継続できますように。。。

実際、21:00 or 22:00就寝予定だったのに、もう22:30超えちゃってるし・・・。

無理をせず、この習慣が継続できますように。。

 

AtCoder 8日目

本日やったこと

・ABC190 A-Very Very Primitive Game →○

・ABC190 B-Magic3 →○

・ABC190 C-Bowls and Dishes →×

 

今回学習したこと

・pair<int,int>の利用方法

・Bit演算子の利用方法

・autoキーワード

vector ではpush_backメソッドを使って要素を末尾に追加する

 

f:id:shinchan03:20210403131024p:plain

 

昨日宣言した通り、1時間問題を解いて、1時間解説を読むということを行ってみました!!

うん、なかなかいい戦略だと思われる。

実際、まとまった2時間を作るのは働きながらだとなかなか難しいので、朝出勤前にその時間を確保することにしました。

AM6:00~AM8:00です。場合によっては解説は通勤中に動画を見て行うつもりです。

そのために朝5:00には起きなければ時間の確保は難しい。

そのために夜21:00 or 22:00には寝なければ睡眠不足となる。

 

AtCoderによって私の生活習慣もかなり改善されそうです。。。笑

 

今回C問題の解説をかなり時間をかけて読み込みましたが、難しすぎて理解できませんでした。

①まず、vectorやpairの使い方の理解に一苦労。

②bit演算子を使ったfor文、if文で死亡

C++ ならではの記述(auto&など)を理解していない

 

対応策としては

①『やさしいC++』で学習を進める

Excelアルゴリズムのトレースを行う

をやっていきたいと思います。

トレースなんてやった方が絶対いいことは分かってるけど、書くのがめんどくさ過ぎて最後までやったことないレベル。(九九の二重ループでさえ81行いるじゃん・・・)

そのめんどくさいを解決するために、Excel。今まで臭いものに蓋をしてたというか、なんとなく分かったつもりで解いていたアルゴリズムを明確に理解したいから。

 

まあ、道のりは遠いですが、、、下手の横好きということで、一問も解けないわけではないと自分を慰めながら行っていこうと思います。

 

 

 

 

 

 

AtCoder 7日目

今日やったこと

・ABC191 A.Vanishing Pitch →○

・ABC191 B.Remove It →○

・ABC191 C.Digital Graffiti →×

 

今日学んだこと

vectorを使用するには<bits/c++.h>をincludeする必要がある

vector<string> は可変長配列

・解説動画で使っているマクロ(rep)の利用

f:id:shinchan03:20210402133501p:plain

 

今日もB問題解けた!!

しかしC問題は難しかった。

解説動画を見てみると、まあ頭良さそうな人が淡々と解説しておりました。。

失礼な話だが、解説者は理科系の男に似ている。

f:id:shinchan03:20210402133525j:plain

初めて解説動画を見た時は「解説やのに全然理解できんやんけ・・・」と思ったものだが、今回見てみると、「分かる・・・分かるぞ・・・・!!」と思うことができました。

 

毎日のAtCoderの進め方だが、現在1日最低一問は取り組むように進めているが、

できるのであれば、1日2時間時間を確保して、

①1時間で問題を全て解き切る

②1時間解説動画を視聴する

という進め方にしたらおそらくもっと効率的に力がつきそうな気がする・・・!

そうなると1日6問という、ハードルを大きく上回るやり方になってしまうのでかなり勇気がいる・・・!

実際、今回3問連続で解いてみて後半だるかった・・・笑

 

とはいえ、毎日1問こなすことで、AtCoderの問題文に対する抵抗や、取り組む抵抗はかなりなくなり、習慣になりつつあります。その日、調子が良ければ1回分のコンテスト通してやるくらいのゆるさでやっていこうと思う。

 

youtube禁 2日目の感想↓

ちょっと見ちゃいました。笑

というのも、ネットサーフィンしてて、

メンタルを強くする方法っていう、ゆうきゆう先生の動画にたどり着いてそれを、

そしてAtCoderの解説動画を見る際に。

完全に無くすってのはまずAtCoderをやってる時点で無理だと分かったので、必要な時は見るというゆるい条件にしたいと思います。笑

そもそも食事の時や移動時間、暇な時にだらだら見るということを避けたかったので、必要な時は見るというゆるさでも構わないと思っています。まあ、、、それでも禁止する自信はないんだけれども。。頑張っていきます。

AtCoder 6日目

今日やったこと

・ABC192 B-uNrEaDaBiEsTrInG → ○

 

学んだこと

str.length()で文字列取得

isupper()関数で大文字小文字判断

 

f:id:shinchan03:20210401203851p:plain

 

このブログを始めてから初のB問題が解けた!笑

小さいけども大きな一歩です。自信を少し持つことができました。

 

こうやって問題を解いていて思うことは、

「実際の業務と比べて、面白いところだけやってるな〜」ということです。

実際の業務だとこうやってロジック考えて実装を試行錯誤して・・・っていう美味しい部分だけ行うことはほぼ無理なんですよね。

つまらんExcelコピペ作業やチェック作業、会議レビューなど、、、う〜ん。

とにかく、AtCoderが美味しいところだけ集めたものであることが分かって、AtCoderは捗りそうです!

 

そういえば、四月一日ということもあり、なにか新たに始めたいなと思って実行したことがあります。昨日、問題視していた「無駄な時間」の削減。

そのために、youtubeを見ない生活にもチャレンジしたいと思います。(いつまでもつか・・・)

初日の感想↓

youtubeを見ない代わりに、祈る時間が増えた。。。

というのは冗談で、ネットサーフィンする時間と寝る時間、音楽を聴く時間、うろちょろする時間が増えました。結局有意義に過ごせてないやないかい!!!ってツッコミそうだけど、最初はそんなものだと思ってゆるくやっていきたいと思います。

AtCoder 5日目

今日やったこと

・ABC192 A.Star → ○

 

f:id:shinchan03:20210401002043p:plain

 

今日は1時間だけ予定はあったものの、基本的には一日中暇だったはずなんだけど、なんだかんだ着手できずにまた妥協の一問。。。笑

 

明日から4月になる。本当はこのブログ、4月から始めようと思ってたんだけど、思い立ったら吉日ということでちょっと早めにスタートしたんだよね。明日からもう少し力が入るといいな。

 

すごく当たり前のことを言うんだけど、問題に着手すること自体は全く苦ではないんだけど(むしろ楽しいんだけど)、着手するまでに時間がかかるんだよな〜。自分の甘さというか。

 

じゃあ今日なんかは無駄に過ごしていた時間何をしていたかというと

・惰眠

・ネットサーフィン

youtube

に尽きる。

youtubeなんかは本当に玉石混交で、技術のことやお金のことなど動画ですごく勉強させてもらってたりするけど、すでに何回も見てるお笑いとか音楽PVとか見てる時は有意義とは言えない。そろそろyoutubeも見る動画なくなってきたし、週末のみ、もしくは長期連休にまとめて閲覧するようにしたい。

AtCoder 4日目

今日行ったこと

・ABC 193 A.Discount → ○

・ABC193 B.SUNUKE GAME → ×

 

今日学んだこと

・???

 

またまた仕事の作業にかなり時間を取られた1日でした。しかし!やっと作業にもひと段落つけることができました!明日からは自由な時間が取れそうです。

 

今日もA問題解いて満足してしまった。B問題に取り組んだんだけど、分からなくなって諦めた。。。あれ、、かなり前にちょっとやってたときはB問題までは解けていたような・・・。

だめだ、時間をとってちゃんと取り組まないと延々とA問題を繰り返す日々になりそうだ。明日は腰を入れてB問題、C問題に取り組みたい。

AtCoder 3日目

本日やったこと

・ABC194 A I Scream →○

 

本日学んだこと

・if文のネストとelse if文の違いの再確認

 

今日は本当はもっと着手したかったけども、仕事でエラー解消につまずき、あまり着手できませんでした。

もっとfor文を駆使して、せめて全件探索とかやりたいのに今日やったこと分岐だけって。。

 

明日はB問題解けますように。。。