Swiftでナップサック問題を解いたらTLEになっちゃった!なんで?どうして!? by しもとり

iOSDC Japan 2020
LT(5分)

Swiftでナップサック問題を解いたらTLEになっちゃった!なんで?どうして!?

S_Shimotori_pub しもとり S_Shimotori_pub
3

皆さん、競技プログラミングに挑戦したことはありますか?
競技プログラミングでは様々な問題が出題され、正しく 高速に 解くプログラムを作成してそれを解答とします。
実行時間が制限を超えれば容赦無くTime Limit Exceeded。時間切れで得点ゼロです。

ナップサック問題のような難しい問題であっても、与えられた実行時間はたったの2秒。2秒以内に答えを出すプログラムでなければいけません。

まあ、難しいっていったって、配列作ってfor文をくるくるっと回すだけで答えがすぐに出るんですけどね。楽勝楽しょ……

_人人人人人_
> TLE <
 ̄Y^Y^Y^Y ̄

なんで?どうして!?実行時間が4秒超えてるってどういうこと!?
標準入力受け取って配列宣言してfor文回して配列更新するだけたったのO(NW)なのに!
C++で解いたら15ミリ秒なのに!

本LTでは、日頃愛用のSwiftで挑戦したい皆さんに向けて、おなじみの "あれ" が意外と遅いことを紹介します。競プロでは便利な "これ" を代わりに使うといいらしいですよ。