diff options
| author | nsfisis <nsfisis@gmail.com> | 2023-03-19 00:47:11 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2023-03-19 00:47:11 +0900 |
| commit | 88b66f82aae2d7784002b07bfc7877932da3ec94 (patch) | |
| tree | 4950a8f9f740715f2c56383309edab97df37a2f5 /public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html | |
| parent | 0e5fff11e9a455273dad77fc26796af03ddf08d3 (diff) | |
| download | blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.tar.gz blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.tar.zst blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.zip | |
fix(content): fix XML notations
Diffstat (limited to 'public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html')
| -rw-r--r-- | public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html b/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html index 2aa8c03..0fb3911 100644 --- a/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html +++ b/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html @@ -9,7 +9,7 @@ <meta name="keywords" content="カンファレンス,PHP,PHP カンファレンス"> <link rel="icon" type="image/svg+xml" href="/favicon.svg"> <title>PHP カンファレンス沖縄で出題されたコードゴルフの問題を解いてみた | REPL: Rest-Eat-Program Loop</title> - <link rel="stylesheet" href="/style.css?h=48694677b43b77e5c45f25e6bfdebb41"> + <link rel="stylesheet" href="/style.css?h=36f8a090080ebb76d78b17f1d93b3ba4"> <link rel="stylesheet" href="/hl.css?h=340e65ffd5c17713efc9107c06304f7b"> </head> <body class="single"> @@ -59,18 +59,18 @@ </li> </ol> </section> - <section id="section--_はじめに"> - <h2><a href="#section--_はじめに">はじめに</a></h2> + <section id="section--intro"> + <h2><a href="#section--intro">はじめに</a></h2> <p> - 本日 <a href="https://phpcon.okinawa.jp/">PHP カンファレンス沖縄 2022</a> が開催された (らしい)。 + 本日 <a href="https://phpcon.okinawa.jp/">PHP カンファレンス沖縄 2022</a> が開催された (らしい)。 </p> <p> - カンファレンスには参加できなかったものの、懇親会の LT で出題されたコードゴルフの問題が Twitter に流れてきたので、解いてみた。 + カンファレンスには参加できなかったものの、懇親会の LT で出題されたコードゴルフの問題が Twitter に流れてきたので、解いてみた。 </p> <p> - ツイート: <a href="https://twitter.com/m3m0r7/status/1563397620231712772">https://twitter.com/m3m0r7/status/1563397620231712772</a> + ツイート: <a href="https://twitter.com/m3m0r7/status/1563397620231712772">https://twitter.com/m3m0r7/status/1563397620231712772</a> <br> スライド: <a href="https://speakerdeck.com/memory1994/php-conference-okinawa-2022-extra?slide=3">https://speakerdeck.com/memory1994/php-conference-okinawa-2022-extra?slide=3</a> </p> @@ -79,7 +79,7 @@ <section id="section--_解"> <h2><a href="#section--_解">解</a></h2> <p> - 細かいレギュレーションは不明だったので、勝手に定めた。 + 細かいレギュレーションは不明だったので、勝手に定めた。 </p> <ul> @@ -109,28 +109,28 @@ </ul> <p> - 書いたものがこちら: + 書いたものがこちら: </p> <pre class="highlight" language="php" linenumbering="unnumbered"><code class="highlight">[<span class="hljs-meta"><?php</span> <span class="hljs-variable">$n</span>=<span class="hljs-variable">$argv</span>[<span class="hljs-number">1</span>];<span class="hljs-keyword">foreach</span>([<span class="hljs-number">1e4</span>,<span class="hljs-number">5e3</span>,<span class="hljs-number">2e3</span>,<span class="hljs-number">1e3</span>,<span class="hljs-number">500</span>,<span class="hljs-number">100</span>,<span class="hljs-number">50</span>,<span class="hljs-number">10</span>,<span class="hljs-number">5</span>,<span class="hljs-number">1</span>]<span class="hljs-keyword">as</span><span class="hljs-variable">$x</span>)<span class="hljs-keyword">for</span>(;<span class="hljs-variable">$n</span>>=<span class="hljs-variable">$x</span>;<span class="hljs-variable">$n</span>-=<span class="hljs-variable">$x</span>)<span class="hljs-variable">$r</span>[]=<span class="hljs-variable">$x</span>;<span class="hljs-keyword">echo</span> <span class="hljs-title function_ invoke__">implode</span>(<span class="hljs-string">', '</span>,<span class="hljs-variable">$r</span>??[]);<span class="hljs-meta">?></span>]</code></pre> <p> - しめて 123 バイトとなった (末尾改行を含めずにカウント)。 + しめて 123 バイトとなった (末尾改行を含めずにカウント)。 </p> <p> - こちらは改行とスペースを追加したバージョン: + こちらは改行とスペースを追加したバージョン: </p> <pre class="highlight" language="php" linenumbering="unnumbered"><code class="highlight">[<span class="hljs-meta"><?php</span> - <span class="hljs-variable">$n</span> = <span class="hljs-variable">$argv</span>[<span class="hljs-number">1</span>]; - <span class="hljs-keyword">foreach</span> ([<span class="hljs-number">1e4</span>, <span class="hljs-number">5e3</span>, <span class="hljs-number">2e3</span>, <span class="hljs-number">1e3</span>, <span class="hljs-number">500</span>, <span class="hljs-number">100</span>, <span class="hljs-number">50</span>, <span class="hljs-number">10</span>, <span class="hljs-number">5</span>, <span class="hljs-number">1</span>] <span class="hljs-keyword">as</span> <span class="hljs-variable">$x</span>) +<span class="hljs-variable">$n</span> = <span class="hljs-variable">$argv</span>[<span class="hljs-number">1</span>]; +<span class="hljs-keyword">foreach</span> ([<span class="hljs-number">1e4</span>, <span class="hljs-number">5e3</span>, <span class="hljs-number">2e3</span>, <span class="hljs-number">1e3</span>, <span class="hljs-number">500</span>, <span class="hljs-number">100</span>, <span class="hljs-number">50</span>, <span class="hljs-number">10</span>, <span class="hljs-number">5</span>, <span class="hljs-number">1</span>] <span class="hljs-keyword">as</span> <span class="hljs-variable">$x</span>) <span class="hljs-keyword">for</span> (; <span class="hljs-variable">$n</span> >= <span class="hljs-variable">$x</span>; <span class="hljs-variable">$n</span> -= <span class="hljs-variable">$x</span>) - <span class="hljs-variable">$r</span>[] = <span class="hljs-variable">$x</span>; - <span class="hljs-keyword">echo</span> <span class="hljs-title function_ invoke__">implode</span>(<span class="hljs-string">', '</span>, <span class="hljs-variable">$r</span> ?? []); + <span class="hljs-variable">$r</span>[] = <span class="hljs-variable">$x</span>; +<span class="hljs-keyword">echo</span> <span class="hljs-title function_ invoke__">implode</span>(<span class="hljs-string">', '</span>, <span class="hljs-variable">$r</span> ?? []); - <span class="hljs-meta">?></span>]</code></pre> +<span class="hljs-meta">?></span>]</code></pre> </section> <section id="section--_使用したテクニック"> @@ -138,44 +138,44 @@ <section id="section--_指数表記"> <h3><a href="#section--_指数表記">指数表記</a></h3> <p> - 割と多くの言語のゴルフで使えるテクニック。<code>e</code> を用いた指数表記で、大きな数を短く表す。このコードでは <code>10000</code>、<code>5000</code>、<code>2000</code>、<code>1000</code> を指数表記している。 + 割と多くの言語のゴルフで使えるテクニック。<code>e</code> を用いた指数表記で、大きな数を短く表す。このコードでは <code>10000</code>、<code>5000</code>、<code>2000</code>、<code>1000</code> を指数表記している。 </p> </section> <section id="section--_foreach_や_for_の中身を1つの文に"> <h3><a href="#section--_foreach_や_for_の中身を1つの文に">foreach や for の中身を1つの文に</a></h3> <p> - <code>foreach</code>、<code>for</code>、<code>if</code> などの後ろには、通常 <code>{</code> を続けて複数の文を連ねるが、中身の文を1つにしてしまえば、<code>{</code> と <code>}</code> を省略できる。C言語などでも使える。 + <code>foreach</code>、<code>for</code>、<code>if</code> などの後ろには、通常 <code>{</code> を続けて複数の文を連ねるが、中身の文を1つにしてしまえば、<code>{</code> と <code>}</code> を省略できる。C言語などでも使える。 </p> </section> <section id="section--_r_に初期値を入れない"> <h3><a href="#section--_r_に初期値を入れない">$r に初期値を入れない</a></h3> <p> - PHP では、<code>$r[] = &#8230;&#8203;</code> のような配列の末尾に追加する式を実行したとき、<code>$r</code> が未定義だった場合は <code>$r</code> を勝手に定義して空の配列で初期化してくれる。これを利用すると、<code>$r = [];</code> のような初期化が不要になる。 + PHP では、<code>$r[] = &#8230;&#8203;</code> のような配列の末尾に追加する式を実行したとき、<code>$r</code> が未定義だった場合は <code>$r</code> を勝手に定義して空の配列で初期化してくれる。これを利用すると、<code>$r = [];</code> のような初期化が不要になる。 </p> <p> - ただし、プログラムに 0 が渡されるとループを一度も回らないので、<code>$r</code> が未定義になってしまい、<code>implode()</code> に渡すところでエラーになる。それを防ぐために <code>$r ?? []</code> を使っている。 + ただし、プログラムに 0 が渡されるとループを一度も回らないので、<code>$r</code> が未定義になってしまい、<code>implode()</code> に渡すところでエラーになる。それを防ぐために <code>$r ?? []</code> を使っている。 </p> <p> - もし 0 が渡されたケースを無視するなら、これが不要になるので 4 バイト縮む。 + もし 0 が渡されたケースを無視するなら、これが不要になるので 4 バイト縮む。 </p> </section> <section id="section--_php_タグの外に文字列を置く"> <h3><a href="#section--_php_タグの外に文字列を置く">PHP タグの外に文字列を置く</a></h3> <p> - PHP では、<code><?php</code> <code>?></code> で囲われた部分の外側にある文字列は、そのまま出力される。今回のケースでは、先頭と末尾に必ず <code>[</code> と <code>]</code> を出力するので、そのまま書いてやればよい。 + PHP では、<code><?php</code> <code>?></code> で囲われた部分の外側にある文字列は、そのまま出力される。今回のケースでは、先頭と末尾に必ず <code>[</code> と <code>]</code> を出力するので、そのまま書いてやればよい。 </p> </section> </section> - <section id="section--_おわりに"> - <h2><a href="#section--_おわりに">おわりに</a></h2> + <section id="section--outro"> + <h2><a href="#section--outro">おわりに</a></h2> <p> - 最後になりましたが、https://twitter.com/m3m0r7[めもりー] さん、楽しい問題をありがとうございました。 + 最後になりましたが、https://twitter.com/m3m0r7[めもりー] さん、楽しい問題をありがとうございました。 </p> </section> </div> |
