Skip to main content

Command Palette

Search for a command to run...

AtCoder: abc242 (Swift)

Published
1 min read

A - T-shirt

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

提出


B - Minimize Ordering

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

提出

C - 1111gal password

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

提出

D - ABC Transform

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

提出

More from this blog

swift-collectionsのSortedCollectionsを試す方法

swift-collectionsを読み込む際にmainブランチを指定する 2024年4月14日現在のswift-collectionsのリリースバージョン1.1.0では、SortedCollectionsが含まれていません(取り除かれました…)。そのため、SortedCollectionsを利用するにはリリースブランチではなく、mainブランチを利用する必要があります。 package.swiftで指定する場合は、下記のようにdependenciesでブランチを指定します。 // swift-...

Apr 14, 20241 min read

Swift 5.9からの `swift package init` の変更点

先日、 swift package init コマンドを使った際にswift 5.9に合わせた変更点に気づきました。 情報があまりなく、私自身が戸惑ったこともあり、コマンドを実行する時の--typeを基準にどういった変更があったのか概要をまとめたいと思います。 Init template cleanup #6144 Swift Fromsでの議論によると、狙いとしてはシンプルなユースケースへの最適化にあるようです。 system-module、manifestと、empty これまであった、 s...

Dec 25, 20231 min read

アルゴ式: 961 Q4. 二部グラフ判定 (DFS ver.) (Swift)

Q4. 二部グラフ判定 (DFS ver.) なんとか毎日問題は解いていたけれども、ブログは空いてしまった Bool?に対してSwitch文を書こうとしたけれども、Optionalの場合は、.some()を挟むというので方針を変更 提出したコードはその名残が残ってしまった 提出はしていないけれども簡単な修正もした このブログを書いている際に、改めてSwitch分で書いたりもした(1, 2) 提出 AC

Jun 18, 20221 min read

Continuous Tumbling

123 posts

Learning Swift/Swift UI, and competitive programming. (he/him)