# アルゴ式: 840 二次元地図 (Swift)

## [二次元地図](https://algo-method.com/tasks/840)

- 最初は`[[Bool]]`の配列に変換して
- また`where`を使いそびれた
- 公式の[解説][editorial]ではIntのArrayで記載していたし、数を数えるのだから、それもアリかと`[[Int]]`で実装
- `[[Bool]]`もそうだが、この問題の用に一度しか判定しないのであれば、必要なところだけ変換した方が計算量が少なさそうだと`[[Character]]`で実装
- 本当は`String`のままでとりあえず取っておくのが楽そうだとは思いつつも、Swiftの`String`については扱いがまだよくわかっていない
- `filter`して`count`したり、`forEach`で直接足したり
- `filter`の段階で新規に`Array`が返るから、それが不要かも
- `for-in`でも実装して、Arrayを回避
- `for-in`での実装が実行時間が一番短い
- 実行時間はどれぐらい安定しているのだろうか
- 高階関数を使うのはかっこいいけれども、無理に使う必要もないか
  - 高階関数という単語は初めて使った（というか今調べた）
  - 英語のHigh-Order functionも忘れてたし

[editorial]: https://algo-method.com/tasks/840/editorial

### 提出

- [`[[Bool]]`](https://algo-method.com/submissions/360333)
- [`where`](https://algo-method.com/submissions/360819)
- [`[[Int]]`](https://algo-method.com/submissions/360822)
- [`[[Character]]`](https://algo-method.com/submissions/360836)
- [`forEach`](https://algo-method.com/submissions/360864)
- [`for-in`](https://algo-method.com/submissions/360861)
