Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ゼロから始める競技プログラミング
Search
Takahito Hashimoto
September 27, 2018
Technology
0
250
ゼロから始める競技プログラミング
Takahito Hashimoto
September 27, 2018
Tweet
Share
More Decks by Takahito Hashimoto
See All by Takahito Hashimoto
Webエンジニア超入門!
mosmos21
0
290
OSSのライセンスを知ろう
mosmos21
0
170
今日から始めるVue.js
mosmos21
0
220
オブジェクト指向設計原則から学ぶアプリケーション設計(SOLID原則についてのまとめ)
mosmos21
8
3.8k
Other Decks in Technology
See All in Technology
どうすると生き残れないのか/how-not-to-survive
hanhan1978
2
340
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
540
AIエージェント入門
minorun365
PRO
34
20k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
540
エンジニアのキャリアパスと、 その中で自分が大切にしていること
noteinc
3
430
[OpsJAWS Meetup33 AIOps] Amazon Bedrockガードレールで守る安全なAI運用
akiratameto
1
140
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
220
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
360
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
210
クラウド関連のインシデントケースを収集して見えてきたもの
lhazy
9
2k
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
310
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
170
Featured
See All Featured
Designing for Performance
lara
605
68k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
115
51k
It's Worth the Effort
3n
184
28k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Building Your Own Lightsaber
phodgson
104
6.2k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
ゼロから始める 競技プログラミング 2018/7/30 @mosmos_21
今日話すこと • 競技プログラミングって何するの? • どうやって始めるの? • 続けるために何をすればいいの?
その前に自己紹介
橋本 尚儒 【twitter】 もっさん@mosmos_21 • 社会人2年目 • 普段は自社製品の開発をし ています(Java +
javascript) 【経歴みたいなもの】 • 山梨県出身 専門学校(4年制)に通った後に都内で就活 ↓ 今の会社に内定もらって東京で働き始めた 【趣味】 • 競技プログラミング(初めて1年ちょっと) • ビリヤード
認識度の確認 • 競技プログラミングをすでに楽しんでいる • 1,2回コンテストに出てみたことがある • ほとんど知らない/サイトに登録してみただけ
競技プログラミングって 何するの?
競技プログラミングとは • ある問題に対する回答を出力するプログ ラムを作成する速度を競う競技 • 解いた問題の難易度、速度によって順 位・レートが決まる
例題(AtCoder Beginner Contest 102 -B) 長さ Nの整数列 Aが与えられます。 Aの(添字の)異なる 2要素の差の絶対値の最大値を求めてください。
例えば… N = 4, A = {1, 4, 6, 3} ↓ A3 – A1 = 6 – 1 = 5 が絶対値の最大値になります
どうやって始めるの?
競技プログラミングができるところ • AtCoder – 一番おすすめ! • TopCoder – マラソンもよく開催してる •
Codeforces – よくこどふぉる・開催時間が遅め • CSAcademy – ブラウザ上のコーディングスペースがあったりする • paiza – ランクがついて年収いくらとか出るところ • yukicoder – レートはつかない みんなが問題を投稿してコンテストをやるところ
AtCoderがおすすめの理由 • 問題は全部日本語 • ほぼ毎週コンテストがある • 就活にも使える • コンテストの時間的に参加しやすい •
解説がわかりやすい + ブログに解説を書く人も多い
たった3ステップ! AtCoderの始め方 1. アカウントを作る 2. コンテストに登録する 3. 時間が来たら問題が公開されるので全力で解く! まずはABC(AtCoder Beggner
Contest)から参加しましょう
参加し続けると実力に応じてレートが変動します(AtCoderのレーティング) 色 レーティング 国内 赤 2800 ~ 1位 ~ 27位
橙 2400 ~ 2799 28位 ~ 69位 黄 2000 ~ 2399 70位 ~ 183位 青 1600 ~ 1999 184位 ~ 500位 水 1200 ~ 1599 501位 ~ 1201位 緑 800 ~ 1199 1202位 ~ 2428位 茶 400 ~ 799 2429位 ~ 4001位 灰 1 ~ 399 4002位 ~
続けるために何するの?
どうせ〇〇法みたいな アルゴリズムわからないと 競技プログラミングできないんでしょ…?
最初からアルゴリズム勉強しないとできない? • そんなことは全くない • 緑に入るくらいまではアルゴリズムほとんどわからなくても大丈夫 • 抑える必要があるのは配列の扱い方とか文字列の基本的な扱い方とか • 水色目指すくらいで、全探索、二分探索、幅優先探索、深さ優先探索く らいそれっぽくかければ大丈夫
• 青目指すあたりでよくわからないアルゴリズムが少しずつ出てくる
とはいえ続けるからにはなんか勉強したくなる
競技プログラミング関連の有名な書籍 • プログラミングコンテストチャレンジブック(蟻本) • 最強最速アルゴリズムマー養成読本(Chokudaiさんの本) • プログラミングコンテスト攻略のためのアルゴリズムとデータ構造(AOJ本)
あといくつかサイトを紹介します
最後に
まとめ • 競技プログラミングはいいぞ! • とりあえず帰ったらAtCoderに登録して問題を解いてみましょう
ご清聴ありがとうございました!