Skip to content

Commit 157ce61

Browse files
committed
solved day 2
1 parent b76cfaf commit 157ce61

File tree

10 files changed

+1351
-1088
lines changed

10 files changed

+1351
-1088
lines changed

src/2025/day02.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
export function part1(input) {
2+
let ranges = input.split(",").map(range => range.split("-").map(Number));
3+
let sum = 0;
4+
for (let range of ranges) {
5+
for (let i = range[0]; i <= range[1]; i++) {
6+
let str = i.toString();
7+
if (str.match(/^(\d+)\1$/)) {
8+
sum += i;
9+
}
10+
}
11+
}
12+
return sum;
13+
}
14+
15+
export function part2(input) {
16+
let ranges = input.split(",").map(range => range.split("-").map(Number));
17+
let sum = 0;
18+
for (let range of ranges) {
19+
for (let i = range[0]; i <= range[1]; i++) {
20+
let str = i.toString();
21+
if (str.match(/^(\d+)\1+$/)) {
22+
sum += i;
23+
}
24+
}
25+
}
26+
return sum;
27+
}

src/2025/day02.test.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { part1, part2 } from "./day02.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("day02 2025", () => {
8+
describe("part1", () => {
9+
test("it should work for part 1 examples", () => {
10+
expect(
11+
part1(
12+
[
13+
"11-22,95-115,998-1012,1188511880-1188511890,222220-222224,",
14+
"1698522-1698528,446443-446449,38593856-38593862,565653-565659,",
15+
"824824821-824824827,2121212118-2121212124",
16+
].join(""),
17+
),
18+
).toEqual(1227775554);
19+
});
20+
21+
test("it should work for part 1 input", () => {
22+
expect(part1(input)).toEqual(23039913998);
23+
});
24+
});
25+
26+
describe("part2", () => {
27+
test("it should work for part 2 examples", () => {
28+
expect(
29+
part2(
30+
[
31+
"11-22,95-115,998-1012,1188511880-1188511890,222220-222224,",
32+
"1698522-1698528,446443-446449,38593856-38593862,565653-565659,",
33+
"824824821-824824827,2121212118-2121212124",
34+
].join(""),
35+
),
36+
).toEqual(4174379265);
37+
});
38+
39+
test("it should work for part 2 input", () => {
40+
expect(part2(input)).toEqual(35950619148);
41+
});
42+
});
43+
});

src/2025/day02.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
92916254-92945956,5454498003-5454580069,28-45,4615-7998,4747396917-4747534264,272993-389376,36290651-36423050,177-310,3246326-3418616,48-93,894714-949755,952007-1003147,3-16,632-1029,420-581,585519115-585673174,1041-1698,27443-39304,71589003-71823870,97-142,2790995-2837912,579556301-579617006,653443-674678,1515120817-1515176202,13504-20701,1896-3566,8359-13220,51924-98061,505196-638209,67070129-67263432,694648-751703,8892865662-8892912125
2+

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">2*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</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"> 2*</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"> 4*</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">502*</span></article>
46+
<p>Total stars: <span class="star-count">504*</span></article>
4747
</main>
4848
</body>
4949
</html>

src/2025/index.html

Lines changed: 18 additions & 12 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">2*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</span></div>
2626
</div>
2727
<div>
2828
<h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=</span><a
@@ -31,21 +31,29 @@ <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-r { color: #f00; }
35-
.calendar .calendar-color-Y { color: #ff6; text-shadow: 0 0 5px #ff6, 0 0 10px #ff6, 0 0 15px #ff6; }
34+
.calendar .calendar-color-v { color: #b6f; }
3635
.calendar .calendar-color-a { color: #999; }
36+
.calendar .calendar-color-n { color: #9b715b; }
37+
.calendar .calendar-color-y { color: #ff6; }
38+
.calendar .calendar-color-r { color: #f00; }
3739
.calendar .calendar-color-w { color: #fff; }
40+
.calendar .calendar-color-u { color: #06f; }
41+
.calendar .calendar-color-m { color: #abc; }
42+
.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; }
3844
.calendar .calendar-color-o { color: #f90; }
3945
</style>
40-
<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-w">'</span> <span class="calendar-color-o">&lt;</span><span class="calendar-color-w">o</span> <span class="calendar-color-w">.'</span>
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>
4147
<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>
42-
<span aria-hidden="true" class="calendar-day2"> _______||_________
43-
| _@__ || _o_ | <span class="calendar-day"> 2</span><span id="calendar-countdown"></span><script>
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>
4452
(function(){
4553
var countdown = document.getElementById("calendar-countdown");
4654
if (!countdown) return;
47-
var server_eta = 69484;
48-
var key = "2025-2-"+server_eta;
55+
var server_eta = 85909;
56+
var key = "2025-3-"+server_eta;
4957
var now = Math.floor(new Date().getTime()/1000);
5058
var target = server_eta + now;
5159
if (sessionStorage) {
@@ -68,8 +76,8 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
6876
countdown.textContent = "";
6977

7078
var a = document.createElement("a");
71-
a[String.fromCharCode(104,114,101,102)] = "/2025" + String.fromCharCode(47,100,97,121,47) + "2";
72-
a.className = "calendar-day2 calendar-day-new";
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";
7381
var span = countdown.parentNode;
7482
while (span.firstChild) {
7583
a.appendChild(span.firstChild);
@@ -91,8 +99,6 @@ <h1 class="title-event">&nbsp;&nbsp;&nbsp;<span class="title-event-wrap">$year=<
9199
update_countdown();
92100
})();
93101
</script></span>
94-
<span aria-hidden="true" class="calendar-day3"> |_&amp;_%__||_oo__^=_[
95-
<span class="calendar-day"> 3</span></span>
96102
<span aria-hidden="true" class="calendar-day4">
97103
<span class="calendar-day"> 4</span></span>
98104
<span aria-hidden="true" class="calendar-day5">

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">2*</span></div>
25+
title="Member of sponsor: Wix Engineering">(Sponsor)</a> <span class="star-count">4*</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)