Enviar pesquisa
Carregar
Scalaで始める競技プログラミング
•
Transferir como ODP, PDF
•
1 gostou
•
1,476 visualizações
H
HAYATO KOKUBU
Seguir
Fun Fun Functional (1) 関数型言語初心者向けLightning Talks!! でのLT資料 指摘事項の修正1点あり
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 13
Baixar agora
Recomendados
GREE Tech Talk #4 パネルディスカッション Jenkinsによるテスト自動化の会社への導入
GREE Tech Talk #4 パネルディスカッション Jenkinsによるテスト自動化の会社への導入
gree_tech
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
kyon mm
表参道.rb #1 Ruby Gold 2.1 に合格した話
表参道.rb #1 Ruby Gold 2.1 に合格した話
Yoshiaki Yoshida
ideone / codecademy
ideone / codecademy
masakazuyamanaka
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
Tddのすゝめ
Tddのすゝめ
将 高野
実戦Scala
実戦Scala
Yuto Suzuki
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Recomendados
GREE Tech Talk #4 パネルディスカッション Jenkinsによるテスト自動化の会社への導入
GREE Tech Talk #4 パネルディスカッション Jenkinsによるテスト自動化の会社への導入
gree_tech
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
kyon mm
表参道.rb #1 Ruby Gold 2.1 に合格した話
表参道.rb #1 Ruby Gold 2.1 に合格した話
Yoshiaki Yoshida
ideone / codecademy
ideone / codecademy
masakazuyamanaka
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
Tddのすゝめ
Tddのすゝめ
将 高野
実戦Scala
実戦Scala
Yuto Suzuki
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
仕様をコードに落としこむ際気をつけたいこと
仕様をコードに落としこむ際気をつけたいこと
Masaki Toyoshima
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
Yuichi Hasegawa
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Chihiro Ito
Introduce build in shrinker
Introduce build in shrinker
Daisuke Fuji
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
First Step TDD
First Step TDD
Jun Yokoyama
Quarkus入門
Quarkus入門
Norito Agetsuma
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
Starc verilog hdl2013d
Starc verilog hdl2013d
Kiyoshi Ogawa
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
オラクルエンジニア通信
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
競プロでGo!
競プロでGo!
鈴木 セシル
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Do you like scala
Do you like scala
Yuto Suzuki
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Mais conteúdo relacionado
Semelhante a Scalaで始める競技プログラミング
仕様をコードに落としこむ際気をつけたいこと
仕様をコードに落としこむ際気をつけたいこと
Masaki Toyoshima
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
Yuichi Hasegawa
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Chihiro Ito
Introduce build in shrinker
Introduce build in shrinker
Daisuke Fuji
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
First Step TDD
First Step TDD
Jun Yokoyama
Quarkus入門
Quarkus入門
Norito Agetsuma
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
Starc verilog hdl2013d
Starc verilog hdl2013d
Kiyoshi Ogawa
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
オラクルエンジニア通信
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
競プロでGo!
競プロでGo!
鈴木 セシル
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Do you like scala
Do you like scala
Yuto Suzuki
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Semelhante a Scalaで始める競技プログラミング
(20)
仕様をコードに落としこむ際気をつけたいこと
仕様をコードに落としこむ際気をつけたいこと
[豆ナイト]Java small object programming
[豆ナイト]Java small object programming
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Introduce build in shrinker
Introduce build in shrinker
Scala.jsはじめました!
Scala.jsはじめました!
First Step TDD
First Step TDD
Quarkus入門
Quarkus入門
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Starc verilog hdl2013d
Starc verilog hdl2013d
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
Scala Daysに行ってみて
Scala Daysに行ってみて
競プロでGo!
競プロでGo!
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
Do you like scala
Do you like scala
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Scalaの現状と課題
Scalaの現状と課題
Scalaで始める競技プログラミング
1.
Scala で始める競技プログラミング 2019 年
5 月 27 日 Hayato_Kokubu
2.
自己紹介 ◆ 国分 隼
(Hayato_Kokubu ) 社会人 4 年目 : Java(2 年 ) -> Cobol(1 年 ) -> Scala(1 年 ) Scala 使いのサーバサイドエンジニア 興味関心 : 競プロ , CTF, (Kaggle )
3.
競技プログラミングって何??? 問題を適切なアルゴリズムを使って解く。 制限実行時間内・制限メモリ内で問題を解く。 テストケースが通れば OK! オンラインのコンテスト たち e.g.
topcoder // red coder の由来 Codeforces // 世界で人気 AtCoder // 日本語 多言語対応
4.
問題例1 AtCoder Beginner
Contest 121 A (https://atcoder.jp/contests/abc121/tasks/abc121_a) イメージつきますか???
5.
問題例2 AtCoder Beginner
Contest 120 B (https://atcoder.jp/contests/abc120/tasks/abc121_b) ちょっと複雑で難しめ。。。
6.
競プロをおすすめする理由 ・ ( アルゴリズムとデータ構造に強くなれる!
) ・ ( コードテストに強くなれる! ) ・プログラミング 初学者でもチャレンジできる! Hello World! の次にやること におすすめ!!
7.
Scala で解くとどんな感じ? (
問題その2 ) Step1. 整数 A, B の最大公約数 d を求める Step2. d の約数を全て求める Step3. K 番目に大きいものをとる これを Scala で実装してみよう!
8.
Step.1 A と
B の最大公約数 d を求める ● エラトステネスの篩 ( ふるい ) ユークリッドの互除法を利用 while 文よりも再帰で ( 参照透過性 , 末尾再帰最適化 )
9.
Step2. d の約数を全て求める filter
処理 リストの要素のうち、 条件を満たす要素のみを抽出する 降順にしているのは、 K 番目に大きい数をとるため。
10.
Step3. K 番目に大きいものをとる Collection
の apply メソッドを使用 ここでは、 k - 1 番目の値を返す という意味
11.
まとめ ● 同じ処理でも言語によって考え方が異なる while 文
と 再帰 の違い など ● 受け身で気軽にチャレンジできる 作る物が決まらなくても問題ない!
12.
出典 AtCoder Atcoder Begenners Contest https://atcoder.jp/contests/abc121/tasks/abc121_a https://atcoder.jp/contests/abc121/tasks/abc120_b
13.
ご静聴ありがとうございました
Baixar agora