SlideShare a Scribd company logo
1 of 20
Download to read offline
社内 
プログラミング勉強会#1 
プロアリんごさん→
勉強会? 
ぷろぐらみんぐの勉強会? 
なにすんの?? 
ぷろぐらみんぐ??
はじめに
これからどんな内容・頻度になっていくかは 
みなさんの状況によって変わっていきます
それを踏まえて…
より効率の良い 
アルゴリズムを考える 
練習をします!!
教本 
あのアリ本!
どんな本?
プログラミングコンテスト 
の問題を通して… 
アルゴリズム 
のしくみや考え方を 
楽しく習得できる本
進め方
進め方の1例 
1. 必要に応じて練習問題やアルゴリズムの紹介 
2. 今日のお題にチャレンジ 
3. 解説/解答を読んで理解 
4. 自分の得意な言語で書いてみる(採点はしてもらえないけれど) 
5. おまけ:LT(LightningTalk)で情報共有など 
# 毎回担当者を変えるのがいいかな
おまけ
計算量 
って意識してますか?
大学のアルゴリズムの講義とかで 
やりましたよね( ́◔◡◔`)?
計算量について知りたい方は 
詳しくはいろいろぐぐってみてください^q^ 
•計算量のはなし - 赤い黒歴史を蓄積する 
http://catupper.hatenablog.com/entry/ 
20131207/1386402713 
•計算量 
http://www.slideshare.net/catupper/ss-26238956 
ex. forループ4重なら O(n^4) 
ex. マージソートなら O(n log n)
初回ということで、ウォーミングアップ!
アリさん問題(Ants:POJ No.1852) 
長さLcmの竿の上をn匹のアリが毎秒1cmのスピードで歩いていま 
す。アリが竿の端に到達すると竿の下に落ちていきます。また、竿 
の上は狭くてすれ違えないので、二匹のアリが出会うと、それぞれ 
反対を向いて戻っていきます。 
各アリについて、現在の竿の左端からの距離Xiはわかりますが、ど 
ちらの方向を向いているのかはわかりません。 
すべてのアリが竿から落ちるまでにかかる最小の時間と最大の時間 
をそれぞれ求めなさい。 
http://poj.org/problem?id=1852 
制約 
1 ≦ L ≦ 10^6 
1 ≦ n ≦ 10^6 
0 ≦ Xi ≦ L 
入力例 
L = 10 
n = 3 
x = {2, 6, 7} 
出力例 
min = 4 
max = 8 
※min:(左、右、右) 
※max:(右、右、右)
正解例 その1 
アリの向いている方向は、1匹につき2通り。 
n匹いるので、全部で2^n通り。 
: 
: 
: 
nがでかいとやばいね!! 
現実的じゃないね!! 
http://poj.org/problem?id=1852
正解例 その2 
最小のケースは、すべてのアリが近い方の端に向かうパターン。 
では、最大になるケースは? 
まず問題をもっと簡単化しましょう。 
衝突後逆方向に行くのと、すれ違うのは同じ! 
そのため、最大になるのは、 
端までの距離の最大値を求めればOK! 
出会った後… 
逆方向へ進むのも、すれ違うのも同じ 
http://poj.org/problem?id=1852
完 
またな!

More Related Content

What's hot

The FizzBuzz Programing Contest
The FizzBuzz Programing ContestThe FizzBuzz Programing Contest
The FizzBuzz Programing ContestJunichi Ito
 
自然言語処理概要
自然言語処理概要自然言語処理概要
自然言語処理概要ratchiratchi
 
プログラミング言語
プログラミング言語プログラミング言語
プログラミング言語ssuser33820e
 
Pythonで作る自作デバッガLT資料
 Pythonで作る自作デバッガLT資料 Pythonで作る自作デバッガLT資料
Pythonで作る自作デバッガLT資料Yuya Masumura
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会YukiIwasaki2764
 
知っていると便利な検索ワード
知っていると便利な検索ワード知っていると便利な検索ワード
知っていると便利な検索ワードiPride Co., Ltd.
 
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)Fumihito Yokoyama
 
Unity開発Tips CrageミニLT大会
Unity開発Tips CrageミニLT大会Unity開発Tips CrageミニLT大会
Unity開発Tips CrageミニLT大会Yusuke Shima
 
Arithmer NLP Introduction
Arithmer NLP IntroductionArithmer NLP Introduction
Arithmer NLP IntroductionArithmer Inc.
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Satoru Mikami
 
LTネタが完成しなくてごめんなさい
LTネタが完成しなくてごめんなさいLTネタが完成しなくてごめんなさい
LTネタが完成しなくてごめんなさいKento Kawakami
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...Yuya Unno
 
Pyladies tokyo 20150123
Pyladies tokyo 20150123Pyladies tokyo 20150123
Pyladies tokyo 20150123Ai Makabi
 
Rediscovery of the presentation(public)
Rediscovery of the presentation(public)Rediscovery of the presentation(public)
Rediscovery of the presentation(public)TAKIMOTO Hiroki
 
TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料Shinichi Kusano
 
2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料TENTO_slide
 

What's hot (20)

The FizzBuzz Programing Contest
The FizzBuzz Programing ContestThe FizzBuzz Programing Contest
The FizzBuzz Programing Contest
 
自然言語処理概要
自然言語処理概要自然言語処理概要
自然言語処理概要
 
プログラミング言語
プログラミング言語プログラミング言語
プログラミング言語
 
Pythonで作る自作デバッガLT資料
 Pythonで作る自作デバッガLT資料 Pythonで作る自作デバッガLT資料
Pythonで作る自作デバッガLT資料
 
ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会ど素人向け エンジニア勉強会
ど素人向け エンジニア勉強会
 
知っていると便利な検索ワード
知っていると便利な検索ワード知っていると便利な検索ワード
知っていると便利な検索ワード
 
15パソコンを使おう
15パソコンを使おう15パソコンを使おう
15パソコンを使おう
 
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
 
Unity開発Tips CrageミニLT大会
Unity開発Tips CrageミニLT大会Unity開発Tips CrageミニLT大会
Unity開発Tips CrageミニLT大会
 
Arithmer NLP Introduction
Arithmer NLP IntroductionArithmer NLP Introduction
Arithmer NLP Introduction
 
Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門Itエンジニアのための自然言語処理入門
Itエンジニアのための自然言語処理入門
 
LTネタが完成しなくてごめんなさい
LTネタが完成しなくてごめんなさいLTネタが完成しなくてごめんなさい
LTネタが完成しなくてごめんなさい
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
自然言語処理
自然言語処理自然言語処理
自然言語処理
 
Pyladies tokyo 20150123
Pyladies tokyo 20150123Pyladies tokyo 20150123
Pyladies tokyo 20150123
 
Rediscovery of the presentation(public)
Rediscovery of the presentation(public)Rediscovery of the presentation(public)
Rediscovery of the presentation(public)
 
質問応答システム
質問応答システム質問応答システム
質問応答システム
 
TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料
 
2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料
 
Pukai
PukaiPukai
Pukai
 

Viewers also liked

Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLUchio Kondo
 
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovyzgmf_mbfp03
 
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料kisshy
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)orange clover
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_GroovyNobuhiro Sue
 
Lispで仕事をするために
Lispで仕事をするためにLispで仕事をするために
Lispで仕事をするためにfukamachi
 
人が集まらない勉強会の果てに辿り着いた新しい勉強会 For Meta Con2009
人が集まらない勉強会の果てに辿り着いた新しい勉強会  For Meta Con2009人が集まらない勉強会の果てに辿り着いた新しい勉強会  For Meta Con2009
人が集まらない勉強会の果てに辿り着いた新しい勉強会 For Meta Con2009toshihiro ichitani
 
バラバラの同僚を社内勉強会でつなげよう
バラバラの同僚を社内勉強会でつなげようバラバラの同僚を社内勉強会でつなげよう
バラバラの同僚を社内勉強会でつなげようMasakatsu Sugii
 
社内勉強会のきっかけ
社内勉強会のきっかけ社内勉強会のきっかけ
社内勉強会のきっかけYuji Tomiyama
 

Viewers also liked (9)

Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 
開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy開発現場で使えるかもしれないGroovy
開発現場で使えるかもしれないGroovy
 
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料
2011.12.06 DevLOVE 社内勉強会×勉強会 講演資料
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
 
Lispで仕事をするために
Lispで仕事をするためにLispで仕事をするために
Lispで仕事をするために
 
人が集まらない勉強会の果てに辿り着いた新しい勉強会 For Meta Con2009
人が集まらない勉強会の果てに辿り着いた新しい勉強会  For Meta Con2009人が集まらない勉強会の果てに辿り着いた新しい勉強会  For Meta Con2009
人が集まらない勉強会の果てに辿り着いた新しい勉強会 For Meta Con2009
 
バラバラの同僚を社内勉強会でつなげよう
バラバラの同僚を社内勉強会でつなげようバラバラの同僚を社内勉強会でつなげよう
バラバラの同僚を社内勉強会でつなげよう
 
社内勉強会のきっかけ
社内勉強会のきっかけ社内勉強会のきっかけ
社内勉強会のきっかけ
 

Similar to 社内勉強会 2014/10/08

さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションantibayesian 俺がS式だ
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」nishikawa_makoto7
 
たのっち流コラムの書き方
たのっち流コラムの書き方たのっち流コラムの書き方
たのっち流コラムの書き方Daiki Tanoguchi
 
プログラミング勉強会
プログラミング勉強会プログラミング勉強会
プログラミング勉強会ssuser50bb47
 
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目schoowebcampus
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)nishikawa_makoto7
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争Eric Sartre
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
普段の仕事に活かせるキャッチコピー力養成実習
普段の仕事に活かせるキャッチコピー力養成実習普段の仕事に活かせるキャッチコピー力養成実習
普段の仕事に活かせるキャッチコピー力養成実習schoowebcampus
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法kazukiTakahashi18
 
20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meetingakikom0819
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documentsbleis tift
 
ゆるふわGo言語
ゆるふわGo言語ゆるふわGo言語
ゆるふわGo言語yumi_chappy
 
文章作成の基礎
文章作成の基礎文章作成の基礎
文章作成の基礎saireya _
 
楽しいプログラミング
楽しいプログラミング楽しいプログラミング
楽しいプログラミング明洋 庄司
 
“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂ikuyaterasaka
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-nishio
 
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLang
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLangデザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLang
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLangTaketoshi Kamada
 
【Schoo web campus】「相手に伝わる」文章を書く技術
【Schoo web campus】「相手に伝わる」文章を書く技術【Schoo web campus】「相手に伝わる」文章を書く技術
【Schoo web campus】「相手に伝わる」文章を書く技術schoowebcampus
 

Similar to 社内勉強会 2014/10/08 (20)

さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッション
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
たのっち流コラムの書き方
たのっち流コラムの書き方たのっち流コラムの書き方
たのっち流コラムの書き方
 
プログラミング勉強会
プログラミング勉強会プログラミング勉強会
プログラミング勉強会
 
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
普段の仕事に活かせるキャッチコピー力養成実習
普段の仕事に活かせるキャッチコピー力養成実習普段の仕事に活かせるキャッチコピー力養成実習
普段の仕事に活かせるキャッチコピー力養成実習
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法
 
20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting20120731 ALC Eijiro User Meeting
20120731 ALC Eijiro User Meeting
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documents
 
ゆるふわGo言語
ゆるふわGo言語ゆるふわGo言語
ゆるふわGo言語
 
HiNative Trek
HiNative TrekHiNative Trek
HiNative Trek
 
文章作成の基礎
文章作成の基礎文章作成の基礎
文章作成の基礎
 
楽しいプログラミング
楽しいプログラミング楽しいプログラミング
楽しいプログラミング
 
“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂“Septeni×Scala”勉強会#1資料_20150219_寺坂
“Septeni×Scala”勉強会#1資料_20150219_寺坂
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLang
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLangデザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLang
デザイン言語を使ってやりたいことを整理しよう - Omoroki DesignLang
 
【Schoo web campus】「相手に伝わる」文章を書く技術
【Schoo web campus】「相手に伝わる」文章を書く技術【Schoo web campus】「相手に伝わる」文章を書く技術
【Schoo web campus】「相手に伝わる」文章を書く技術
 

社内勉強会 2014/10/08