# AtCoder: abc242 (Swift)

## [A - T-shirt](https://atcoder.jp/contests/abc242/tasks/abc242_a)

- 範囲指定で凡ミスをした…
- `return`を返すときは`guard`文で書きたくなるのだけどどこまでこだわるべきなのだろう
- Range指定しないといけないから少し手間だけどSwitch文の方がミスを減らせるだろうか

## 提出 
- [コンテスト中](https://atcoder.jp/contests/abc242/submissions/29889150)
- [Switch文](https://atcoder.jp/contests/abc242/submissions/29908506)

## [B - Minimize Ordering](https://atcoder.jp/contests/abc242/tasks/abc242_b)

- `String`にも`sorted()`メソッドがある（[ドキュメント](https://developer.apple.com/documentation/swift/string/2894781-sorted)）
  - 返ってくるのは`[Character]`
  - 本番中は自信がなかったからとりあえずまずは`[Character]`に変換した
- パフォーマンスの違いは微差だからどちらでもよい
- コードの簡潔さの方が違いとしては大きいそう

## 提出

- [コンテスト中](https://atcoder.jp/contests/abc242/submissions/29872692)
- [`String.sorted()`](https://atcoder.jp/contests/abc242/submissions/29908645)

## [C - 1111gal password](https://atcoder.jp/contests/abc242/tasks/abc242_c)

- いいかげん`mod`をテンプレートに入れた
- 正直、modがある問題に対する苦手意識はまだある
- 最初は単純に考えすぎてて、動的計算法だと気づくのにちょっと時間がかかった
- コンテスト中の書き方は、ちょっと雑さもあるけれども、頭の中での考えを試行錯誤しながら書き出すには楽
- [semisagiさんの解法](https://atcoder.jp/contests/abc242/submissions/29868542)は簡潔でバグが発生しづらそう
- 長期的に読みやすさは後者の方がいいのだろうか
- ただ、コンテスト中だと前者になってしまうなぁ

## 提出

- [コンテスト中](https://atcoder.jp/contests/abc242/submissions/29888557)
- [semisagiインスパイア](https://atcoder.jp/contests/abc242/submissions/29908841)

## [D - ABC Transform](https://atcoder.jp/contests/abc242/tasks/abc242_d)

- コンテスト中、k文字目が0になったときの処理をする必要があることに気づけず
- それ以外は、多少の雑さはあるものの、実装できていたから悔しさが残る
- 計算量の複雑さは意識できるようになってきている
- まだ計算の絶対量への感覚が掴めていない
  - 制約の把握
  - 許容されている複雑さの感覚
  - どこがボトルネックになるのか
- ボトルネックに気づけず2進数で処理する方法とか考えてしまった
  - 試行錯誤はしたものの、結局複雑さの解消は難しそう
- 文字を配列にして、回すパターンは身につけたい
- `k==0`になる場合を最初から計算することも考えてみた
  - `pow(2, 60) > pow(10, 18)`なので、`t >= 60`で`k==0`
  - でも、結局そこからは同じ処理をしないとする必要があるから変わらず。
  - 文字列を取得したときに数列に置き換えるパターンと、必要な文字だけを数字に置き換えるのだと処理時間が変わらないのが意外
    - Qが大きい場合、同じ文字を何度も置き換えるからだろうか
    - 試しに`S[0]`だけ最適化してみたけれども改善せず
    - 単純に全体の計算量的からみて微差なのだろうか

## 提出

- [文字列全変換](https://atcoder.jp/contests/abc242/submissions/29908332)
- [取得時変換+改善](https://atcoder.jp/contests/abc242/submissions/29930553)
- [`k==0`での最適化実験](https://atcoder.jp/contests/abc242/submissions/29930591)
