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.7k
Other Decks in Technology
See All in Technology
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
900
コンテナサプライチェーンセキュリティ
kyohmizu
1
110
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.6k
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
150
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
310
ローカルLLMを活用したコード生成と、ローコード開発ツールへの応用
kazuhitoyokoi
0
130
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
66k
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
150
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
27
14k
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
120
デスクトップだけじゃないUbuntu
mtyshibata
0
550
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
200
Featured
See All Featured
Scaling GitHub
holman
459
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Rails Girls Zürich Keynote
gr2m
94
13k
KATA
mclloyd
29
14k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Six Lessons from altMBA
skipperchong
27
3.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
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に登録して問題を解いてみましょう
ご清聴ありがとうございました!