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
260
ゼロから始める競技プログラミング
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.9k
Other Decks in Technology
See All in Technology
SwiftUI Transaction を徹底活用!ZOZOTOWN UI開発での活用事例
tsuzuki817
1
800
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
12k
Tenstorrent HW/SW 概要説明
tenstorrent_japan
0
370
Snowflake Intelligenceで実現できるノーコードAI活用
takumimukaiyama
1
180
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
770
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
2
120
上長や社内ステークホルダーに対する解像度を上げて、より良い補完関係を築く方法 / How-to-increase-resolution-and-build-better-complementary-relationships-with-your-bosses-and-internal-stakeholders
madoxten
13
7.2k
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.4k
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
データ戦略部門 紹介資料
sansan33
PRO
1
3.2k
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
110
Whats_new_in_Podman_and_CRI-O_2025-06
orimanabu
3
170
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.8k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Designing Experiences People Love
moore
142
24k
Building an army of robots
kneath
306
45k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Rails Girls Zürich Keynote
gr2m
94
14k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
For a Future-Friendly Web
brad_frost
179
9.8k
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に登録して問題を解いてみましょう
ご清聴ありがとうございました!