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
ゼロから始める競技プログラミング
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takahito Hashimoto
September 27, 2018
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゼロから始める競技プログラミング
Takahito Hashimoto
September 27, 2018
More Decks by Takahito Hashimoto
See All by Takahito Hashimoto
Webエンジニア超入門!
mosmos21
0
330
OSSのライセンスを知ろう
mosmos21
0
200
今日から始めるVue.js
mosmos21
0
230
オブジェクト指向設計原則から学ぶアプリケーション設計(SOLID原則についてのまとめ)
mosmos21
8
4.2k
Other Decks in Technology
See All in Technology
USB PDを使ってスマホを労わりたい
raspython3
0
170
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
270
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
140
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
420
DGX Spark でどこまでハッキングができるのか?
kash1064
2
1.3k
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
510
Getting Started with Google Antigravity
glaforge
0
280
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
440
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
450
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
680
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.6k
Optunaの最新リリースv5.0について
pfn
PRO
0
110
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Exploring anti-patterns in Rails
aemeredith
4
540
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Building Applications with DynamoDB
mza
96
7.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
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に登録して問題を解いてみましょう
ご清聴ありがとうございました!