SlideShare a Scribd company logo
1 of 18
Webプログラマの為のTopcoder入門 2011.02.21 Twitter: @yuichirw ハッシュタグ: #atstudy
Topcoderについて Topcoder社の開催するプログラムコンテスト 世界中のプログラマが参加するコンテスト Single Round Match(SRM)やMarathonMatch(MM)というコンテストがある 使用可能な言語はC++, Java, C#, VB Pythonが使用可能になるらしい...?
SRMについて ほぼ毎週コンテストが開催される 75分で,easy, medium, hardの3つの問題を解く 5分の休憩後,お互いのバグを発見し,バグを誘発させるとポイントが貰えるチャレンジタイムがある これによりプログラマのネトゲと呼ばれているらしい? 問題回答の早さによって,Ratingが振られる 2200~はredCoderとして恐れられている Ratingによって,Div1(難しい問題)とDiv2(易しい問題)に振り分けられる
プログラミングコンテストって? 問題が提出され,それを解くプログラムを書く 解いた問題数や,解けた時間などを競う 様々なコンテストがある Google Code Jam http://code.google.com/codejam/ Codeforces http://www.codeforces.com/ CodeChef http://www.codechef.com/
ここで問題です
例題 絶対パス path,currentPathが与えられるので,currentPathからpathへの相対パスを求めよ – Div2  405 Medium ex) Input: path = “/a/b/c/d”, currentPath = “/a/b/e/d” Output: “../../c/d”
このような問題が5分で解けると
幸せになれると思いませんか?
解答例
なぜTopcoder? 実際にコードを書くので,コーディング技術が向上する コーディング技術が上がれば,ソースをはやく書ける. シンプルに書ける!! 開発効率の向上!! 他人のソースを見ることで,いろんな発見ができる もしあなたが美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれはTopcoderに参加することで容易に実現することができる http://www.itmedia.co.jp/enterprise/articles/0703/01/news013.html ただ,トリッキーすぎるソースもある… 業務プログラムにFizzBuzzを1行で書くようなプログラムはいらない プログラムの実行時間やメモリ使用量などに気を使えるようになる
Topcoderに参加するために 登録しなくてはいけない http://mainly-coding.blogspot.com/2010/02/topcoder.html 使用言語はJavaがおすすめ C++は自由度が高すぎて,難しい ライブラリが充実 特に文字列処理が素敵 文字列 数字の相互変換とか胸熱 基数変換も出来ちゃう 例外から,エラーを推測しやすい Eclipse + EclipseCoder(プラグイン)がオススメ http://fornwall.net/eclipsecoder/
それ,Javaでもできるよ?
Javaのススメ (1) 文字列 “aaa,bbb,ccc” を {“aaa”, “bbb”, “ccc”} とパーズしたい phpなら explode(‘,’, “aaa,bbb,ccc”); String[] str_ary = “aaa,bbb,ccc”.split(“,”); 文字列“100034” を変数intvalに格納したい phpなら $val = intval(“100034”); intval = Integer.parseInt(“100034”); 10進数 26 を 16進数に変換したい phpならdechex(26); Integer.toString(26, 16); //val, radix … 1a !!
それ,PHPじゃあできないよ?
Javaのススメ (2) 数字 17 を18進数に基数変換する Integer.parseInt(17, 18); // h!! と思ったら, base_convert($number, $frombase, $tobase)があった… php恐るべし… じゃ,じゃあ 100000000000000000 * 2の値は? new BigInteger(“100000000000000000”).multiply(new BigInteger(“2”)); // 200000000000000000 …!! 任意精度の演算はphpにはできませんよね
ほらね! Javaは出来る子!
まとめ Topcoderに参加すると,開発効率が向上する!! シンプルなソースが書け,可読性が上がる!! Topcoderの参加にはJavaがおすすめ 基本,PHPで書けるソースは書ける Javaは出来る子
おしまい 以上,ご清聴ありがとうございました

More Related Content

Viewers also liked (7)

動的計画法
動的計画法動的計画法
動的計画法
 
ダイクストラ法
ダイクストラ法ダイクストラ法
ダイクストラ法
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
グラフを扱おう:最短路問題
グラフを扱おう:最短路問題グラフを扱おう:最短路問題
グラフを扱おう:最短路問題
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
 
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
 
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
 

Similar to 2011 02-21 第1回@freaks勉強会

Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]yak1ex
 
競技プログラミングの楽しみ
競技プログラミングの楽しみ競技プログラミングの楽しみ
競技プログラミングの楽しみ徹 稲盛
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミングcocodrips
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみるasa88
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会モノビット エンジン
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめhakoika-itwg
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストSeiji KOMATSU
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021Atsushi Nakamura
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 

Similar to 2011 02-21 第1回@freaks勉強会 (10)

Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]
 
競技プログラミングの楽しみ
競技プログラミングの楽しみ競技プログラミングの楽しみ
競技プログラミングの楽しみ
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 

2011 02-21 第1回@freaks勉強会