3
1

【AtCoder】オリジナルの別の楽しみ方「タイムロンガー」

Posted at

自己紹介

AtCoderで日々奮闘している、中学生のwhile-true-ifです。

ちなみに自分は茶コーダー(2024/3/11時点)です。

この記事の対象者

  • AtCoderでヘンなことしてみたい人
  • 暇な人

ルール

「タイムロンガー」という遊び方を考案しました

今から、タイムロンガーのルール説明をします。

  • 特定の問題をACすること
  • 制限時間に近ければ近いほどよい

この2つのルールさえ守っていれば、何してもいいです。

テクニック

time.sleepを使う

ABC084 A問題
を使ってみました。

問題は以下の通りです。

12 月 30 日の M 時から次の年になるまでは何時間か、求めてください。

基本的には、

print(48-int(input()))

というコードを提出するのが、普通です。

しかし、実行結果はACであるものの、時間は9msという速さであるため、タイムロンガーでは、好まれないコードです。

そのため、time.sleep()というものを使います。

import time

time.sleep(1.991)
print(48-int(input()))

解答例はこんな感じです。

結果はACで2000msぴったりでした。

これはタイムロンガーの上では、ベストコードです。

しかし、これはちょっとチートすぎる気がするので、別のテクニックを使っていきたいと思います。

for文を使う

これなら少し面白みがあると思います。

さっきの問題で、タイムロンガーにチャレンジします。

n=78000000

for _ in range(n):
  pass

print(48-int(input()))

結果はACで1850msでした。ただ、time.sleep()と違い、for文は少し、時間が不安定です。そのため、このコードでは、1750ms~1850msとばらつきがあります。これなら、面白みがあると思います。

さらに、踏み込んで、nを80000000にしました。すると、1773ms~1905msとばらつきがありました。

まとめ

みんなも暇つぶしとしてタイムロンガーをやってみてはどうでしょうか。(自分以外にこんなことをしている人はいるのか?...)

そのほかにも、タイムロンガーで使えるテクニックがあったら、コメントで教えてください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1