# AtCoder: ABC251 E - Takahashi and Animals (Swift)

## [E - Takahashi and Animals](https://atcoder.jp/contests/abc251/tasks/abc251_e)

- コンテスト中はなんか、確実に抜けられるようなところを探して、それで区分をわけて計算できる方法を考えた
- 再挑戦する際には、再帰的にやる方法を考えたけれども、うまく書くことができず
- 最終的には、時間切れを宣言、[解説](https://atcoder.jp/contests/abc251/editorial/3960)や[hironyticさんの解答](https://atcoder.jp/contests/abc251/submissions/31684739)を参考にさせてもらった
- 最初はhironyticさんの写経
- その後、理解を深めるために自分で手を動かしながら、変更を繰り返す
- 最終的には自分の頭の中のイメージを書けて、わかりやすいコードになってよかった
- わかりやすいコードに落とし込めたからこそ、これが自力で書けないのが悔しい
- Arrayに対してappendすることも考えただけれど、メモリを最初から確保するので最初はダミーをいれた
- [`.reserveCapacity(_:)`](https://developer.apple.com/documentation/swift/array/1538966-reservecapacity)を、init段階で指定したい
- とはいえ、一度うめて、indexを指定できる形の方が読みやすいと思うから今回はこれでよかった


### 提出

- [AC](https://atcoder.jp/contests/abc251/submissions/31807147)

