ABC075 B - Minesweeper
今日の問題
今日の言語
所要時間
40m 29s
私の解答
感想
golangにおける文字列操作で、n番目の文字を置換するってどうやるんでしょう?
ちょっと調べた感じでは見つけられませんでした。
私の書いたコードでは、読み込んだ文字列を置換するのではなく、結果文字を文字列連結して別の配列を作ったので実行時間ギリギリになっちゃいましたが、一応ACできました。
十中八苦文字列連結が重たいと思うので、実行速度は改善の余地ありかなと。
参考資料
なし
ABC003 C - AtCoderプログラミング講座
今日の問題
今日の言語
所要時間
42m 53s
私の解答
感想
視聴レートRが大きい動画をK個選んで、視聴レートRが低い順番にK個見ていけば良い。
入力されたRを降順ソートして、K個目から1個目までループを回して計算していけば良い。
よく考えたら、降順ソートしなくても、昇順ソートしてn-k-1個目からn個目まで回せば十分だった。
ARC060 B - Choose Integers
今日の問題
今日の言語
所要時間
36m 24s
私の解答
感想
数字の法則性に気がつくためには紙に書いて整理するのが一番ですね。
数式として頭の中で組み立てられるようになりたい。
参考資料
なし
ARC002 B - 割り切れる日付
今日の問題
今日の言語
所要時間
43m 35s
私の解答
感想
日付の扱いが難しくて手間取りました。
後、最初条件式を「年が月で割りきれるかつ年が日で割り切れる」にしていたんですが、この式は誤りで正しくは「年を月で割った商を日で割る」ということに気がつくまで時間がかかりました。
ABC066 B - ss
今日の問題
今日の言語
所要時間
21m 56s
私の解答
感想
golang、文字列をそのまま配列として扱えるのは楽ですね。
今回は部分配列を取り出すとき、golangだと s[開始index:終了index+1] だと知らずにずっと悩んでいました。
一度 A Tutor of Go をやったほうがいいかもしれませんね。
s := "0123456789" fmt.Println(s[4:10]) // -> "456789" fmt.Println(s[4:]) // -> "456789" fmt.Println(s[:10]) // -> "0123456789" fmt.Println(s[:]) // -> "0123456789"
参考資料
文字列を配列として扱う
[Golang] 文字列操作サンプル - Qiita
配列
Go言語: スライス(配列)の要素を取り出す方法 - Qiita
文字列比較
hydroculのメモ 2つの文字列を比較するには
whileは拡張されたfor文を使う
golangを基礎から学ぶ 制御構造編 - Qiita