<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>AdventOfCode on かおるのブログ</title>
    <link>https://blog.kaorubb.org/ja/categories/adventofcode/</link>
    <description>Recent content in AdventOfCode on かおるのブログ</description>
    <generator>Hugo -- 0.147.8</generator>
    <language>ja</language>
    <lastBuildDate>Tue, 07 Jan 2025 12:07:00 +0900</lastBuildDate>
    <atom:link href="https://blog.kaorubb.org/ja/categories/adventofcode/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Advent of Code 2023 1日目</title>
      <link>https://blog.kaorubb.org/ja/posts/aoc2023d1/</link>
      <pubDate>Tue, 07 Jan 2025 12:07:00 +0900</pubDate>
      <guid>https://blog.kaorubb.org/ja/posts/aoc2023d1/</guid>
      <description>&lt;p&gt;明けましておめでとうございます。&lt;/p&gt;
&lt;p&gt;昨年の年末、とある理由で2023 の&lt;a href=&#34;https://en.wikipedia.org/wiki/Advent_of_Code&#34;&gt;Advent of Code&lt;/a&gt; をちょっとずつ解いていたので、自分の解答や、ちょっとしたメモを残していこうと思います。&lt;/p&gt;
&lt;p&gt;なお、全部pythonで書いています。&lt;/p&gt;
&lt;p&gt;全部解き終わったタイミングで、まとめてgithubにあげようかなと考えていますが、いつになるかはわかりません。&lt;/p&gt;
&lt;p&gt;それでは、早速Day 1 の解答を書いていきます。&lt;/p&gt;
&lt;h2 id=&#34;part-a&#34;&gt;Part a&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;問題の概要&lt;/p&gt;
&lt;p&gt;数字と文字が混ざった文字列が与えられる。
この文字列のそれぞれの行に含まれる最初の数字と最後の数字を取り出し、それらを結合した数値を求める。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1abc2        → 12
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pqr3stu8vwx  → 38
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a1b2c3d4e5f  → 15
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;treb7uchet   → 77
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;課題は、与えられた入力ファイルの全ての行について、この方法で校正値を求めて合計することである。&lt;/p&gt;
&lt;p&gt;この例では、4つの行の校正値（12 + 38 + 15 + 77）を合計すると142になる。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;My solution&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; fastcore.utils &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; L
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; aocd &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; get_data, submit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; re&lt;span style=&#34;color:#f92672&#34;&gt;,&lt;/span&gt; regex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; regex &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; findall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;get_calibration_value&lt;/span&gt;(x:str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    digits &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; re&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;findall(&lt;span style=&#34;color:#e6db74&#34;&gt;r&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\d&amp;#34;&lt;/span&gt;, x)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; int(digits[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;digits[&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;solve1a&lt;/span&gt;(inp:str):
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    lines &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; L(inp&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;splitlines())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; lines&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;map(get_calibration_value)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sum()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;part-b&#34;&gt;Part b&lt;/h2&gt;
&lt;!--list-separator--&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;問題の概要&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
