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
230
ゼロから始める競技プログラミング
Takahito Hashimoto
September 27, 2018
Tweet
Share
More Decks by Takahito Hashimoto
See All by Takahito Hashimoto
Webエンジニア超入門!
mosmos21
0
270
OSSのライセンスを知ろう
mosmos21
0
160
今日から始めるVue.js
mosmos21
0
210
オブジェクト指向設計原則から学ぶアプリケーション設計(SOLID原則についてのまとめ)
mosmos21
8
3.4k
Other Decks in Technology
See All in Technology
One engineer company with Ruby on Rails
rstankov
2
430
Max out Local LLM in Challenging Environments
sashimimochi
1
110
M5stackで使用できるpHセンサの開発
shinrinakamura
0
170
Improve Your Development Workflow with Gemini Code Assist
meteatamel
0
130
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
360
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
150
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
2
590
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
180
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
160
Cloud Service Mesh に触れ合う
phaya72
1
220
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
1
360
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
13
8.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
65
14k
Making Projects Easy
brettharned
109
5.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
Adopting Sorbet at Scale
ufuk
69
8.6k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
It's Worth the Effort
3n
180
27k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
33
6k
The Language of Interfaces
destraynor
151
23k
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に登録して問題を解いてみましょう
ご清聴ありがとうございました!