Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to automate competition programming
Search
Dassimen
November 24, 2019
Programming
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to automate competition programming
こちらのLT資料です。
https://gigacode.connpass.com/event/153119/
Dassimen
November 24, 2019
More Decks by Dassimen
See All by Dassimen
Write code with "Test First"
anchorcable
0
76
Trying AWS Aurora Serverless.
anchorcable
0
250
Dialogue for Design
anchorcable
1
350
How to manage a good work environment
anchorcable
0
150
TDD is not slowly.
anchorcable
1
670
3日坊主でも勉強したい
anchorcable
5
6.1k
Design It! is good for architect.
anchorcable
0
170
今だからこそ分かる報連相 / How to do Hou/Ren/Sou!
anchorcable
0
820
TDD supports us all the time.
anchorcable
0
410
Other Decks in Programming
See All in Programming
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
150
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
180
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
Seven New Principles of Software Engineering
yegor256
0
440
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
160
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
170
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.5k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
350
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
150
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
620
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Accessibility Awareness
sabderemane
1
290
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
How to Ace a Technical Interview
jacobian
280
24k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
680
Transcript
Performanceを上げたいので 自動化してみました Nov 24, 2019 | #dasshimen #GigaCode2019 提出、テスト、そんなものは自動化だ! 脱脂綿
( @anchor_cable )
#GigaCode2019 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア •
株式会社ゆめみ ◦ サーバーサイドエンジニア ◦ 7月1日入社 • AtCoder登録は1年前
3 アジェンダ テストと提出を自動化する方法 自動化した結果どうなるのか Performanceを上げるには? 1 2 3 #GigaCode2019
Performanceを上げるには? 1
5 Performanceを上げるには? なるべく多くの問題を早く解かねばならない(今更感) AtCoder Beginner Contestの場合、 A問題とB問題を合わせて5分以内に解くのが目安 A B C
D E F #GigaCode2019
6 そうはいっても大変 そもそもやることが多い 1.問題文を読んで理解する 2.ローカルにファイルを用意する 3.コードを書く 4.実行する 5.サンプル入力を入力する 6.実行結果がサンプル結果と一致するか確かめる 7.ブラウザから提出する
#GigaCode2019
7 簡略化できる 自動化を導入すれば 1.問題文を読んで理解する 2.ローカルにファイルを用意する → 自動で作業ファイルを作成 3.コードを書く 4.実行する 5.サンプル入力を入力する
→ 自動テスト 6.実行結果がサンプル結果と一致するか確かめる 7.ブラウザから提出する → CLIからコマンドで提出できる #GigaCode2019
テストと提出を自動化する方法 2
9 自動化する方法 ツールを3つ入れてみた • online-judge-tools • atcoder-cli • Dash #GigaCode2019
10 online-judge-tools サンプル自動取得+自動テスト+自動提出 ほとんどの競プロerが使った事あるであろうツール。人権。 AtCoderの各問題に記載されている入力例、出力例を取得し、 コマンド1回で自動テストしてくれる。 もう手動で実行して、手動で入力を入れる必要はなくなった! #GigaCode2019
11 atcoder-cli online-judge-toolsのラッパーツール(AtCoder特化) online-judge-toolsは他の競プロコンテストにも対応している都合上、コマンドが長い atcoder-cliを使う事で、コマンドがかなり短縮される テンプレートファイルを自動配置する機能もある 短いコマンドで全て自動化! 問題に取り掛かる時 acc new ABC144
問題をテストする時 oj test -c "python3 main.py" 問題を提出する時 acc s #GigaCode2019
12 Dash スニペットツール(入力支援ツール) oj test -c "python3 main.py" コマンドがまだ長いので、 ;oj#
で出るようにした ついでに競プロのよく使う構文も登録してみた よく使う構文を登録していく事で、 そこで考えるコストがゼロになった #GigaCode2019
自動化した結果どうなるのか 3
14 出た成果 ABC145 Performance:822 ABC144 Performance:601 #GigaCode2019 ABC142時点でPerformance:157
15 単純な時短以外にも恩恵 気持ちの余裕が生まれる (テストで)1発で正解しないコードでも落ち着いて見返せるようになった 若干不安な部分でも、とりあえず実装してみてテスト通す 問題を解く事に全てのリソースを集中できる #GigaCode2019
16 初心者こそ無駄な所を自動化しよう #GigaCode2019 導入前 「自分にはツールはまだ早いでしょ」 「環境整備しても実力が...」 「アルゴリズムの勉強のが先かな」
17 初心者こそ無駄な所を自動化しよう #GigaCode2019 導入前 「自分にはツールはまだ早いでしょ」 「環境整備しても実力が...」 「アルゴリズムの勉強のが先かな」 導入後 「もっと早くやってればよかった」 「過去問解くのも楽しい!」
→要は良いIDEや良いPC揃えるのと同じ
18 まとめ リラックスして本当の実力を引き出そう 初心者こそ自動化の恩恵を受けよう ツールを入れて手動作業を自動化しよう 1 2 3 #GigaCode2019
ご清聴ありがとうございました
20 参考リンク Atcoder環境をatcoder-cli + online-judge-tools + Dashで構築する https://qiita.com/anchor-cable/items/98a0bf669513d47972d4 AtCoder に登録したら次にやること
~ これだけ解けば十分闘える!過去問精選 10 問 ~ https://qiita.com/drken/items/fd4e5e3630d0f5859067 #GigaCode2019