SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
+




    コードゴルフ	
 
    〜今日から始める難読コードの世界〜
+
    コードゴルフとは?	
 

        プログラムのコードの短さを競う

        コードの長さをゴルフの打数に見立てている



        コードゴルフをはじめてみませんか?
         http://blog.layer8.sh/ja/2012/04/11/introduction-to-code-
         golf/
+
    基本的な方針	
 

        空白、改行を削除

        変数名を1文字に



        なるべく1行にまとめる

        同じ処理をうまく結合する



        文字数が少なく済むアルゴリズムに変える
+
    コードゴルフのメリット	
 

        その言語に親しめる

        演算子や省略記法に詳しくなる
             Math.floor(a) => ~~a

        関数、オブジェクト呼び出しのオーバーヘッドなどを今一度考
         え直せる
             Math.pow(a,2) => a*a or a^2



        可読性が反面教師的に育つ
+
    実際にやってみた
+




                                17位。	
 

        「コードゴルフ:最短コードを書く!」の最終結果発表!!!	
 -
         blog.code.iq│CodeIQ
         http://codeiq.hatenablog.com/entry/2012/12/10/235402
+
    ・・・(´・ω・`)	
 

        初挑戦にしては悪くない。



        妥協が速すぎた
             1文字で順位が変わるのでもっと粘ろう。



        「この問題、ここがキモなんだろうなぁ」
         という勘を養えた
+
    提出したソース	
 

        https://gist.github.com/4319165



    r="";for(y=-1;++y<40;r+="n")for(x=0;x<80;a=40-x
    ++,b=40-y*2,r+=a*a+b*b<900?"*":"-");return r;
+
    現在も挑戦中!	
 

        「サンタのためのコードゴルフ」の暫定順位発表〜2012年12
         月15日14時時点	
 –
         blog.code.iq│CodeIQ
         http://codeiq.hatenablog.com/entry/2012/12/15/173421
+




    return 0;

Mais conteúdo relacionado

Semelhante a コードゴルフ 〜今日から始める難読コードの世界〜

オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ洸人 高橋
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovyirof N
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with PythonTaisuke Yamada
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005gotohayato
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語RShuyo Nakatani
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介Ko Nagase
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話simotin13 Miyazaki
 
Material
MaterialMaterial
Material_TUNE_
 
ROS2のコードチェック
ROS2のコードチェックROS2のコードチェック
ROS2のコードチェックKotaro Yoshimoto
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdbakirahiguchi
 
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
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミングcocodrips
 

Semelhante a コードゴルフ 〜今日から始める難読コードの世界〜 (20)

オセロゲームでコードゴルフ
オセロゲームでコードゴルフオセロゲームでコードゴルフ
オセロゲームでコードゴルフ
 
ゴルフ
ゴルフゴルフ
ゴルフ
 
ゴルフ
ゴルフゴルフ
ゴルフ
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovy
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with Python
 
Code Golf
Code GolfCode Golf
Code Golf
 
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介
 
Shortcodin
ShortcodinShortcodin
Shortcodin
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
Material
MaterialMaterial
Material
 
ROS2のコードチェック
ROS2のコードチェックROS2のコードチェック
ROS2のコードチェック
 
How to debug a perl script using gdb
How to debug a perl script using gdbHow to debug a perl script using gdb
How to debug a perl script using gdb
 
Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]Introduction to programming competition [revised][PDF]
Introduction to programming competition [revised][PDF]
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 

Mais de Shingo Inoue

Lt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするLt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするShingo Inoue
 
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたLT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたShingo Inoue
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4Shingo Inoue
 
さらなるjsの深みへ#3
さらなるjsの深みへ#3さらなるjsの深みへ#3
さらなるjsの深みへ#3Shingo Inoue
 
LTって、何の略だっけ。1
LTって、何の略だっけ。1LTって、何の略だっけ。1
LTって、何の略だっけ。1Shingo Inoue
 
わかる LT@2
わかる LT@2わかる LT@2
わかる LT@2Shingo Inoue
 

Mais de Shingo Inoue (7)

Lt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーするLt8 JavaScriptで配列をコピーする
Lt8 JavaScriptで配列をコピーする
 
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたLT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
 
LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
さらなるjsの深みへ#3
さらなるjsの深みへ#3さらなるjsの深みへ#3
さらなるjsの深みへ#3
 
LTって、何の略だっけ。1
LTって、何の略だっけ。1LTって、何の略だっけ。1
LTって、何の略だっけ。1
 
わかる LT@2
わかる LT@2わかる LT@2
わかる LT@2
 

Último

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Último (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

コードゴルフ 〜今日から始める難読コードの世界〜

  • 1. + コードゴルフ 〜今日から始める難読コードの世界〜
  • 2. + コードゴルフとは?   プログラムのコードの短さを競う   コードの長さをゴルフの打数に見立てている   コードゴルフをはじめてみませんか? http://blog.layer8.sh/ja/2012/04/11/introduction-to-code- golf/
  • 3. + 基本的な方針   空白、改行を削除   変数名を1文字に   なるべく1行にまとめる   同じ処理をうまく結合する   文字数が少なく済むアルゴリズムに変える
  • 4. + コードゴルフのメリット   その言語に親しめる   演算子や省略記法に詳しくなる   Math.floor(a) => ~~a   関数、オブジェクト呼び出しのオーバーヘッドなどを今一度考 え直せる   Math.pow(a,2) => a*a or a^2   可読性が反面教師的に育つ
  • 5. + 実際にやってみた
  • 6. + 17位。   「コードゴルフ:最短コードを書く!」の最終結果発表!!! - blog.code.iq│CodeIQ http://codeiq.hatenablog.com/entry/2012/12/10/235402
  • 7. + ・・・(´・ω・`)   初挑戦にしては悪くない。   妥協が速すぎた   1文字で順位が変わるのでもっと粘ろう。   「この問題、ここがキモなんだろうなぁ」 という勘を養えた
  • 8. + 提出したソース   https://gist.github.com/4319165 r="";for(y=-1;++y<40;r+="n")for(x=0;x<80;a=40-x ++,b=40-y*2,r+=a*a+b*b<900?"*":"-");return r;
  • 9. + 現在も挑戦中!   「サンタのためのコードゴルフ」の暫定順位発表〜2012年12 月15日14時時点 – blog.code.iq│CodeIQ http://codeiq.hatenablog.com/entry/2012/12/15/173421
  • 10. + return 0;