Skip to content

Commit bb3a5f7

Browse files
committed
solved day 3
1 parent 247e0ca commit bb3a5f7

File tree

10 files changed

+896
-4447
lines changed

10 files changed

+896
-4447
lines changed

src/2025/day03.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export function part1(input, batteries = 2) {
2+
let lines = input.split("\n").map(line => line.split("").map(Number));
3+
let voltage = lines.map(line => {
4+
let result = 0;
5+
line.push(0);
6+
for (let i = batteries; i > 0; i--) {
7+
let max = Math.max(...line.slice(0, -1 * i));
8+
let index = line.findIndex(x => x === max);
9+
line = line.slice(index + 1);
10+
result = result * 10 + max;
11+
}
12+
return result;
13+
});
14+
return voltage.reduce((a, b) => a + b);
15+
}
16+
17+
export function part2(input) {
18+
return part1(input, 12);
19+
}

src/2025/day03.test.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { part1, part2 } from "./day03.js";
2+
import { describe, test, expect } from "vitest";
3+
import readInput from "../utils/read-input.js";
4+
5+
let input = readInput(import.meta.url);
6+
7+
describe("day03 2025", () => {
8+
describe("part1", () => {
9+
test("it should work for part 1 examples", () => {
10+
expect(
11+
part1(
12+
[
13+
"987654321111111",
14+
"811111111111119",
15+
"234234234234278",
16+
"818181911112111",
17+
].join("\n"),
18+
),
19+
).toEqual(357);
20+
});
21+
22+
test("it should work for part 1 input", () => {
23+
expect(part1(input)).toEqual(17229);
24+
});
25+
});
26+
27+
describe("part2", () => {
28+
test("it should work for part 2 examples", () => {
29+
expect(
30+
part2(
31+
[
32+
"987654321111111",
33+
"811111111111119",
34+
"234234234234278",
35+
"818181911112111",
36+
].join("\n"),
37+
),
38+
).toEqual(3121910778619);
39+
});
40+
41+
test("it should work for part 2 input", () => {
42+
expect(part2(input)).toEqual(170520923035051);
43+
});
44+
});
45+
});

src/2025/day03.txt

Lines changed: 201 additions & 0 deletions
Large diffs are not rendered by default.

src/2025/events.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ <h1 class="title-global"><a href="index.html">Advent of Code</a></h1>
2222
</nav>
2323
<div class="user">Shahar Talmi <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a> <a
2424
href="https://www.wix.engineering/" target="_blank" class="sponsor-badge"
25-
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">6*</span></div>
2626
</div>
2727
<div>
2828
<h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=</span><a
@@ -32,7 +32,7 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
3232
<main>
3333
<article>
3434
<p>From here, you can access all of the events (and the corresponding puzzles, leaderboards, stats, etc) ever run on Advent of Code:</p>
35-
<div class="eventlist-event"><a href="../2025/solver.html">[2025]</a> <span class="star-count"> 4*</span> <span class="quiet">/ 24*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
35+
<div class="eventlist-event"><a href="../2025/solver.html">[2025]</a> <span class="star-count"> 6*</span> <span class="quiet">/ 24*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
3636
<div class="eventlist-event"><a href="../2024/solver.html">[2024]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
3737
<div class="eventlist-event"><a href="../2023/solver.html">[2023]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
3838
<div class="eventlist-event"><a href="../2022/solver.html">[2022]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
@@ -43,7 +43,7 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
4343
<div class="eventlist-event"><a href="../2017/solver.html">[2017]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
4444
<div class="eventlist-event"><a href="../2016/solver.html">[2016]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
4545
<div class="eventlist-event"><a href="../2015/solver.html">[2015]</a> <span class="star-count">50*</span> <span class="quiet">/ 50*</span> <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a></div>
46-
<p>Total stars: <span class="star-count">504*</span></article>
46+
<p>Total stars: <span class="star-count">506*</span></article>
4747
</main>
4848
</body>
4949
</html>

src/2025/index.html

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ <h1 class="title-global"><a href="index.html">Advent of Code</a></h1>
2222
</nav>
2323
<div class="user">Shahar Talmi <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a> <a
2424
href="https://www.wix.engineering/" target="_blank" class="sponsor-badge"
25-
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">6*</span></div>
2626
</div>
2727
<div>
2828
<h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=</span><a
@@ -31,29 +31,33 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
3131
</header>
3232
<main>
3333
<p>Starting this year, there will be <a href="/2025/about#faq_num_days">12 days</a> of puzzles each December.</p><style>
34-
.calendar .calendar-color-v { color: #b6f; }
3534
.calendar .calendar-color-a { color: #999; }
36-
.calendar .calendar-color-n { color: #9b715b; }
35+
.calendar .calendar-color-t { color: #32211a; }
36+
.calendar .calendar-color-v { color: #b6f; }
37+
.calendar .calendar-color-k { color: #666; }
38+
.calendar .calendar-color-o { color: #f90; }
3739
.calendar .calendar-color-y { color: #ff6; }
38-
.calendar .calendar-color-r { color: #f00; }
3940
.calendar .calendar-color-w { color: #fff; }
4041
.calendar .calendar-color-u { color: #06f; }
41-
.calendar .calendar-color-m { color: #abc; }
42+
.calendar .calendar-color-r { color: #f00; }
4243
.calendar .calendar-color-Y { color: #ff6; text-shadow: 0 0 5px #ff6, 0 0 10px #ff6, 0 0 15px #ff6; }
43-
.calendar .calendar-color-t { color: #32211a; }
44-
.calendar .calendar-color-o { color: #f90; }
44+
.calendar .calendar-color-n { color: #9b715b; }
45+
.calendar .calendar-color-m { color: #abc; }
46+
.calendar .calendar-color-g { color: #0f0; }
4547
</style>
46-
<pre class="calendar"><a aria-label="Day 1, two stars" href="https://github.com/shahata/adventofcode-solver/blob/main/src/2025/day01.js" class="calendar-day1 calendar-verycomplete"> <span class="calendar-color-w">.</span> <span class="calendar-color-w">'</span> <span class="calendar-color-w">____</span> <span class="calendar-color-w">'</span> <span class="calendar-color-w">.'</span> <span class="calendar-color-w">.'</span> <span class="calendar-color-w">'</span> <span class="calendar-color-Y">*</span> <span class="calendar-color-w">'.</span> <span class="calendar-color-w">'</span> <span class="calendar-color-o">&lt;</span><span class="calendar-color-w">o</span> <span class="calendar-color-w">'.'.</span>
48+
<pre class="calendar"><a aria-label="Day 1, two stars" href="https://github.com/shahata/adventofcode-solver/blob/main/src/2025/day01.js" class="calendar-day1 calendar-verycomplete"> <span class="calendar-color-w">____</span> <span class="calendar-color-w">''</span> <span class="calendar-color-w">'..</span> <span class="calendar-color-w">.</span> <span class="calendar-color-Y">*</span> <span class="calendar-color-w">''</span> <span class="calendar-color-w">.</span> <span class="calendar-color-w">.</span> <span class="calendar-color-o">&lt;</span><span class="calendar-color-w">o</span> <span class="calendar-color-w">'</span> <span class="calendar-color-w">.</span>
4749
<span class="calendar-color-w">________/</span><span class="calendar-color-a">O___</span><span class="calendar-color-w">\__________</span><span class="calendar-color-r">|</span><span class="calendar-color-w">_________________O______</span> <span class="calendar-day"> 1</span> <span class="calendar-mark-complete">*</span><span class="calendar-mark-verycomplete">*</span></a>
48-
<a aria-label="Day 2, two stars" href="https://github.com/shahata/adventofcode-solver/blob/main/src/2025/day02.js" class="calendar-day2 calendar-verycomplete"> <span class="calendar-color-a">_______</span><span class="calendar-color-m">||</span><span class="calendar-color-a">_________</span>
49-
<span class="calendar-color-t">.</span> <span class="calendar-color-a">|</span> <span class="calendar-color-n">_</span><span class="calendar-color-v">@</span><span class="calendar-color-n">__</span> <span class="calendar-color-m">||</span> <span class="calendar-color-n">_</span><span class="calendar-color-u">o</span><span class="calendar-color-n">_</span> <span class="calendar-color-r">'.</span><span class="calendar-color-a">|</span>_ _________________________ <span class="calendar-day"> 2</span> <span class="calendar-mark-complete">*</span><span class="calendar-mark-verycomplete">*</span></a>
50-
<span aria-hidden="true" class="calendar-day3"> <span class="calendar-color-a">|_</span><span class="calendar-color-r">&amp;</span><span class="calendar-color-a">_</span><span class="calendar-color-y">%</span><span class="calendar-color-a">__</span><span class="calendar-color-m">||</span><span class="calendar-color-a">_</span><span class="calendar-color-u">o</span><span class="calendar-color-o">o</span><span class="calendar-color-a">__</span><span class="calendar-color-m">^</span><span class="calendar-color-n">=</span><span class="calendar-color-a">_</span><span class="calendar-color-n">[</span> \| _ .. .. .. |
51-
\_]__--|_|___[]_[]_[]__//_| <span class="calendar-day"> 3</span><span id="calendar-countdown"></span><script>
50+
<a aria-label="Day 2, two stars" href="https://github.com/shahata/adventofcode-solver/blob/main/src/2025/day02.js" class="calendar-day2 calendar-verycomplete"> <span class="calendar-color-a">_______</span><span class="calendar-color-m">||</span><span class="calendar-color-a">_________</span> <span class="calendar-color-t">'</span> <span class="calendar-color-t">.</span> <span class="calendar-color-t">.</span> <span class="calendar-color-t">'</span> <span class="calendar-color-t">.</span> <span class="calendar-color-t">.</span> <span class="calendar-color-t">.</span> <span class="calendar-color-t">.''.'</span>
51+
<span class="calendar-color-a">|</span> <span class="calendar-color-n">_</span><span class="calendar-color-v">@</span><span class="calendar-color-n">__</span> <span class="calendar-color-m">||</span> <span class="calendar-color-n">_</span><span class="calendar-color-u">o</span><span class="calendar-color-n">_</span> <span class="calendar-color-r">'.</span><span class="calendar-color-a">|_</span> <span class="calendar-color-a">_________________________</span> <span class="calendar-day"> 2</span> <span class="calendar-mark-complete">*</span><span class="calendar-mark-verycomplete">*</span></a>
52+
<a aria-label="Day 3, two stars" href="https://github.com/shahata/adventofcode-solver/blob/main/src/2025/day03.js" class="calendar-day3 calendar-verycomplete"> <span class="calendar-color-t">'</span> <span class="calendar-color-a">|_</span><span class="calendar-color-r">&amp;</span><span class="calendar-color-a">_</span><span class="calendar-color-y">%</span><span class="calendar-color-a">__</span><span class="calendar-color-m">||</span><span class="calendar-color-a">_</span><span class="calendar-color-u">o</span><span class="calendar-color-o">o</span><span class="calendar-color-a">__</span><span class="calendar-color-m">^</span><span class="calendar-color-n">=</span><span class="calendar-color-a">_</span><span class="calendar-color-n">[</span> <span class="calendar-color-a">\|</span><span class="calendar-color-g">..'</span> <span class="calendar-color-m">_</span> <span class="calendar-color-r">.</span><span class="calendar-color-k">.</span> <span class="calendar-color-r">.</span><span class="calendar-color-k">.</span> <span class="calendar-color-r">.</span><span class="calendar-color-k">.</span> <span class="calendar-color-a">|</span>
53+
<span class="calendar-color-a">\_</span><span class="calendar-color-m">]</span><span class="calendar-color-a">__</span><span class="calendar-color-n">--</span><span class="calendar-color-m">|_|</span><span class="calendar-color-a">___</span><span class="calendar-color-m">[]</span><span class="calendar-color-a">_</span><span class="calendar-color-m">[]</span><span class="calendar-color-a">_</span><span class="calendar-color-m">[]</span><span class="calendar-color-a">__</span><span class="calendar-color-m">//</span><span class="calendar-color-a">_|</span> <span class="calendar-day"> 3</span> <span class="calendar-mark-complete">*</span><span class="calendar-mark-verycomplete">*</span></a>
54+
<span aria-hidden="true" class="calendar-day4"> ____________//___
55+
| \ // @@| <span class="calendar-day"> 4</span><span id="calendar-countdown"></span><script>
5256
(function(){
5357
var countdown = document.getElementById("calendar-countdown");
5458
if (!countdown) return;
55-
var server_eta = 85909;
56-
var key = "2025-3-"+server_eta;
59+
var server_eta = 84602;
60+
var key = "2025-4-"+server_eta;
5761
var now = Math.floor(new Date().getTime()/1000);
5862
var target = server_eta + now;
5963
if (sessionStorage) {
@@ -76,8 +80,8 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
7680
countdown.textContent = "";
7781

7882
var a = document.createElement("a");
79-
a[String.fromCharCode(104,114,101,102)] = "/2025" + String.fromCharCode(47,100,97,121,47) + "3";
80-
a.className = "calendar-day3 calendar-day-new";
83+
a[String.fromCharCode(104,114,101,102)] = "/2025" + String.fromCharCode(47,100,97,121,47) + "4";
84+
a.className = "calendar-day4 calendar-day-new";
8185
var span = countdown.parentNode;
8286
while (span.firstChild) {
8387
a.appendChild(span.firstChild);
@@ -99,9 +103,7 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
99103
update_countdown();
100104
})();
101105
</script></span>
102-
<span aria-hidden="true" class="calendar-day4">
103-
<span class="calendar-day"> 4</span></span>
104-
<span aria-hidden="true" class="calendar-day5">
106+
<span aria-hidden="true" class="calendar-day5"> |_[#]_@@__//_@@@|
105107
<span class="calendar-day"> 5</span></span>
106108
<span aria-hidden="true" class="calendar-day6">
107109
<span class="calendar-day"> 6</span></span>

src/2025/leaderboard.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ <h1 class="title-global"><a href="index.html">Advent of Code</a></h1>
2222
</nav>
2323
<div class="user">Shahar Talmi <a class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a> <a
2424
href="https://www.wix.engineering/" target="_blank" class="sponsor-badge"
25-
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">6*</span></div>
2626
</div>
2727
<div>
2828
<h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=</span><a

0 commit comments

Comments
 (0)