[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
つよくなるための
プログラミング
@cocodrips
1
おまえだれ?
2
名前 : くーむ ( o・ω・)ノ
Twitter : @cocodrips
職業 : ゲームプログラマ(Lv.1)
すきなもの : Python / C++ / js
ブログ : ぴよぴよ.py
プログラミングコンテストとは?
3
参加者がそれぞれ問題を解いて、
解くスピード、正確さ、スコアを競いあって
青春するイベント
様々なジャンルのコンテスト
4
長い(数週間)
だれでもできる
2時間
アルゴリズム
セキュリ
ティ
専門知識が必要
開催期間
サーバ
インフラ
ゲームAI
データマイニング
1 2
345
紹介するコンテストについて
5
参加資格の制限がないコンテスト
アイディアを競うようなコンテスト
Pythonで参加できるコンテスト
コンテストに参加する利点
6
コンテストに参加する利点
7
1
自分と同じ問題を解いた、
他の人の解法を知ることができる
コンテストに参加する利点
8
1
自分と同じ問題を解いた、
他の人の解法を知ることができる
2
同じコンテストに出ていた、
たくさんのライバルと知り合える
アルゴリズムの
コンテスト紹介
9
アルゴリズムのコンテスト
10
長い(数週間)2時間
アルゴリズム
セキュリ
ティ
開催期間
サーバ
インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
アルゴリズムのコンテスト- 問題例
11
有る長方形の3つの辺の長さが与えられる。
残り1つの辺の長さを求めよ。
(Atcoder Beginner Contest 027A)
?
アルゴリズムのコンテスト- 問題例
12
アルゴリズムのコンテスト- 問題例
13
N段の階段があります。あなたは一歩で1段、2段、
もしくは3段登ることができます。
考えうる階段の登り方は何通りありますか?

答えを1000000007で割った数を出力しなさい。
0<N<105 時間制限:2秒, スタック・メモリ制限:256MB
アルゴリズムのコンテスト- 問題例
14
N段の降り方
= 1段降りて、残り(N - 1)段の降り方
+ 2段降りて、残り(N - 2)段の降り方
+ 3段降りて、残り(N - 3)段の降り方
アルゴリズムのコンテスト- 問題例
15
アルゴリズムのコンテスト- 問題例
16
1 計算時間を見積もってみよう!
2 デフォルトでのPythonの
再帰回数の限界を調べてみよう!
maximum recursion depth
アルゴリズムのコンテストとは
17
与えられた問題に対して
解くはやさと正確さを競う
1 外部ライブラリ使用不可
2 速く解くほど点数が高い
3 順位に応じて自分のレーティングが変化する
アルゴリズムのコンテストのよさ
18
1 基本的なデータ構造の使い方を学べる
2 一瞬で計算量を見積もれるようになる
3 標準ライブラリや、言語仕様に詳しくなる
4 1 2時間程度の短時間なコンテスト
19
TopCoder
SRM (するめ)
おてがる
かんたん
Python適性
Div1
定期
開催型
競技プログラミングといえばTopCoder SRM!
SRMのレーティングで競技プログラマとしての格が決まる?!
目指せ Red Coder!
!
アルゴリズムというよりも、数学よりの問題が多いのが特徴
Div 1 / Div 2 : 3問 / 75分 + 撃墜フェーズ 15分
開催頻度 : 月に4回程度
次回開催 : 10/11(日) 1:00 , 10/15(木) 0:00
Div2
RedCoder
https://www.topcoder.com/
アルゴリズムのコンテスト - 紹介
20
CodeForces
おてがる
かんたん
Python適性
Div1
Div2
今夜は家で6000人のプログラマと戦おう!
今1番勢いのある競技プログラミングコンテスト!!!
!
Div 1 / Div 2 : 5問 / 2時間
開催頻度 : 月に4回程度
次回開催 : 10/12(月) 18:00 20:00
毎回夜中の2時頃スタートなのを除けば最高…
定期
開催型
http://codeforces.com/
アルゴリズムのコンテスト - 紹介
アルゴリズムのコンテスト - 紹介
21
AtCoder
おてがる
かんたん
Python適性
アルゴリズムのコンテストならまずはここから!
毎週土曜日に開催される日本語のコンテスト
毎回終了後には解説がニコニコ生放送で見れるのも魅力!
!
初心者向け(ABC) : 4問 / 2時間
中級者向け(ARC) : 4問 / 1.5時間
開催頻度 : 毎週土曜日にABC/ARCどちらか
次回開催 : ARC 10/10(土) 21:00 22:30
ABC 10/24(土) 21:00 23:00 (予定)
定期
開催型
http://atcoder.jp/
@chokudai
社長
22
TopCoder Codeforces AtCoder(日本語)
開催頻度 月3回 月4回 毎週土曜日
問題の特徴 数学系
どちらかといえば
アルゴリズム アルゴリズム重視
問題数と時間 3 5問/120分 4問/90分
PythonのVersion 2 2, 3 2, 3
解ける人数
(%)
Topcoder

の何色に相当するか Div2 Div1 Div2 Div1 ABC ARC
100% 1
1
2
2
4 2
1
3
2
0%
1
2
3
1
2
3
1
2
4
5
2
3
5
4
3 1
4
2
1
3
1
2
3
4
易
難
アルゴリズムのコンテスト - 比較
初心者におすすめ
神の領域
23
アルゴリズムのコンテスト - 勉強法
1 AtCoderのABCに出てみる
2 ABCの過去問を数回分解く
4 アルゴリズムコンテスト用の本を読む
3 TopCoder / CodeForces に出る
24
アルゴリズムのコンテスト - 技術書
競技プログラミングを
最近はじめた人におすすめ
もっともっと強く
なりたい人におすすめ
どこでコンテスト探すの?
25
TopCoder部のカレンダー
紹介したコンテストがいつ開催されるかわかる
Googleカレンダーと連携するのがおすすめ!
ゲームAIの
コンテスト紹介
26
ゲームAIのコンテスト
27
とにかく強いゲームAIを作る
アルゴリズムのコンテスト
28
長い(数週間)2時間
アルゴリズム
セキュリ
ティ
開催期間
サーバ
インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
ゲームAIのコンテスト
29
ゲームAI
30
Codingame
おてがる
かんたん
Python適性
気軽にできる対戦型ゲームAIコンテスト
コンテスト以外にも様々な練習用ゲームがある
!
開催期間 : 1日∼1週間程度
開催頻度 : 月に1回程度
次回コンテスト : CODE vs ZOMBIE
11/29(日) 2:00 11/30(月) 2:00 (24h)
定期
開催型
ゲームAI
31
CODE VS
おてがる
かんたん
Python適性
プログラマが1番目立てるコンテスト
本選がニコファーレで開催! ニコニコ生放送デビュー!?
!
開催期間 : 1ヶ月程度
開催頻度 : 年に1回程度
次回コンテスト : 未定
イベント
型
ゲームAI - CodeVSの様子
32
https://youtu.be/D3r-98abnjY?t=58s
ゲームAIコンテスト - 勉強法
33
1
アルゴリズムコンテストで
アルゴリズムの基礎を学ぶ
2
3
自己流アルゴリズムで
Codingameに出てみる
ゲームAIやMMでよく使う
アルゴリズムを学ぶ
ゲームAIコンテスト - 勉強法
34
1
アルゴリズムコンテストで
アルゴリズムの基礎を学ぶ
2
3
自己流アルゴリズムで
Codingameに出てみる
ゲームAIやMMでよく使う
アルゴリズムを学ぶ
1 codingameに出る
2 codingameに出る
3 codingameに出る
データマイニングの
コンテスト
35
データマイニングのコンテスト
36
長い(数週間)2時間
アルゴリズム
セキュリ
ティ
開催期間
サーバ
インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
データマイニングのコンテスト
37
Kaggle
おてがる
かんたん
Python適性https://www.kaggle.com/
定期
開催型
データマイニングでひとやま当てよう?!
常時10個程度のコンテストが開催されている
自分にあった分野のコンテストを探そう!
!
開催期間 : 数ヶ月程度
開催頻度 : 常時開催
データマイニングのコンテスト - 勉強法
38
データマイニングのコンテスト - 勉強
39
データマイニングのコンテスト - 勉
40
データマイニングのコンテスト ………
41
データマイニングのコンテスト orz
42
データマイニング初心者なので、
よい勉強法がわかりません・・・・
(多分ここにはプロがいっぱいいるので 闊なこと言えない・・・)
Kaggleのはじめかた
43
初心者目線での
Kaggleのはじめかた
44
初心者目線での
GettingStarted の練習問題に挑戦してみる
サーバ・インフラの
コンテスト
45
サーバ/インフラのコンテスト
46
長い(数週間)2時間
アルゴリズム
セキュリ
ティ
開催期間
サーバ
インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
サーバ/インフラ
47
ISUCON
おてがる
かんたん
Python適性
いい感じにスピードアップコンテスト(ISUCON)
日々の業務で培ったWeb総合力が試される!!!!
3人1組なので、チームを作るのが1番難しい…
!
開催期間 : 7時間程度
開催頻度 : 年に1回 予選 / 本選(オンサイト)
次回コンテスト : 未定(今年は予選が終了済み、10/31に本選)
イベント
型
http://isucon.net/
48
サーバ/インフラのコンテスト - 勉強法
1 ISUCONの過去問を解く
2 ISUCONの参加記や
解説を読む

(公式サイトにリスト有り)
セキュリティの
コンテスト
49
セキュリティのコンテスト
50
長い(数週間)2時間
アルゴリズム
セキュリ
ティ
開催期間
サーバ
インフラ
ゲームAI
データマイニング
だれでもできる
専門知識が必要
セキュリティコンテスト-CTFとは?
51
Capture The Flag (旗取り合戦)
!
攻防戦方式 :
脆弱性のあるサービスが動いているサーバが与えられ、
敵チームのサーバからFlagを盗み取る
!
クイズ方式 :
Webサイトの脆弱性をつく / 暗号を解く / バイナリ解析 etc.
!
問題: vzcbeg guvf
52
Gur Mra bs Clguba, ol Gvz Crgref



Ornhgvshy vf orggre guna htyl.

Rkcyvpvg vf orggre guna vzcyvpvg.

Fvzcyr vf orggre guna pbzcyrk.

Pbzcyrk vf orggre guna pbzcyvpngrq.

Syng vf orggre guna arfgrq.

Fcnefr vf orggre guna qrafr.

Ernqnovyvgl pbhagf.

Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.

Nygubhtu cenpgvpnyvgl orngf chevgl.

Reebef fubhyq arire cnff fvyragyl.

Hayrff rkcyvpvgyl fvyraprq.

Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.

Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.

Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.

Abj vf orggre guna arire.

Nygubhtu arire vf bsgra orggre guna *evtug* abj.

Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.

Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.

Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!
問題: vzcbeg guvf
53
Gur Mra bs Clguba, ol Gvz Crgref



Ornhgvshy vf orggre guna htyl.

Rkcyvpvg vf orggre guna vzcyvpvg.

Fvzcyr vf orggre guna pbzcyrk.

Pbzcyrk vf orggre guna pbzcyvpngrq.

Syng vf orggre guna arfgrq.

Fcnefr vf orggre guna qrafr.

Ernqnovyvgl pbhagf.

Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.

Nygubhtu cenpgvpnyvgl orngf chevgl.

Reebef fubhyq arire cnff fvyragyl.

Hayrff rkcyvpvgyl fvyraprq.

Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.

Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.

Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.

Abj vf orggre guna arire.

Nygubhtu arire vf bsgra orggre guna *evtug* abj.

Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.

Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.

Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!
string.decode(‘rot13’)
問題: import this
54
The Zen of Python, by Tim Peters
!
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
セキュリティコンテスト - 紹介
55
SECCON
おてがる
かんたん
Python適性
日本でCTFといえばSECCON
本選: 攻防戦方式 予選:クイズ形式
!
開催期間 : 12 48時間程度
開催頻度 : 本選1回 + 予選7回 /年
次回コンテスト : オンライン予選 12/5(土) 12/6(日)
http://2015.seccon.jp/
定期
開催型
セキュリティコンテスト - 勉強法
56
1 ksnctf でCTFの問題に挑戦してみる
2 出たりCTF本を読んだりする
それ以上のことはわからないorz
3 とかをチェックする
セキュリティコンテスト - 技術書
57
先週発売された
期待の新星 (売切中)
予約してたのにまだ届かない
まとめ
58
様々なジャンルのコンテスト
59
長い(数週間)
だれでもできる
2時間
アルゴリズム
セキュリ
ティ
専門知識が必要
開催期間
サーバ
インフラ
ゲームAI
データマイニング
伝えたいこと
60
1
プログラミングコンテストは
子どもも大人も楽しめる青春イベント!
2
自分の解法と他の人の解法を比較して、
より良い解き方や書き方を知ろう
3
様々なジャンルのコンテストがある!
とにかく一度参加してみよう!
コンテスト予定!
61
10/11(日) 1:00 , 10/15(木) 0:00TopCoder SRM
CodeForces
AtCoder
アルゴリズム
ゲームAI
Codingame
セキュリティ
SECCON
10/12(月) 18:00 20:00
ARC 10/10(土) 21:00 22:30
ABC 10/24(土) 21:00 23:00 (予定)
11/29(日) 2:00 11/30(月) 2:00 (24h)
オンライン予選 12/5(土) 12/6(日)
初心者におすすめ
参考 - アルゴリズム
62
✦ yukicoder 競技プログラミング・アルゴリズムをに練習サイト

http://yukicoder.me/
✦ TopCoder部のカレンダー

https://topcoder.g.hatena.ne.jp/calendar
参考 - セキュリティ
63
✦ CTFはとんでもないものを 盗んでいきました。私の時間です…
http://www.slideshare.net/hiromu1996/it-31937461
✦ ksnctf

http://ksnctf.sweetduet.info/

More Related Content

強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp