Skip to content

Commit 3609a10

Browse files
committed
2023/02
1 parent 19bde94 commit 3609a10

File tree

5 files changed

+97
-22
lines changed

5 files changed

+97
-22
lines changed

2023/Day02/Solution.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using System.Text.RegularExpressions;
4+
5+
namespace AdventOfCode.Y2023.Day02;
6+
7+
[ProblemName("Cube Conundrum")]
8+
class Solution : Solver {
9+
10+
public object PartOne(string input) => (
11+
from line in input.Split("\n")
12+
let game = ParseGame(line)
13+
where game.red <= 12 && game.green <= 13 && game.blue <= 14
14+
select game.id
15+
).Sum();
16+
17+
public object PartTwo(string input) => (
18+
from line in input.Split("\n")
19+
let game = ParseGame(line)
20+
select game.red * game.green * game.blue
21+
).Sum();
22+
23+
// no need to keep track of the individual rounds in a game, just return
24+
// the maximum of the red, green, blue boxes
25+
Game ParseGame(string line) =>
26+
new Game(
27+
ParseInts(line, @"Game (\d+)").First(),
28+
ParseInts(line, @"(\d+) red").Max(),
29+
ParseInts(line, @"(\d+) green").Max(),
30+
ParseInts(line, @"(\d+) blue").Max()
31+
);
32+
33+
// extracts integers from a string identified by the a single regex group.
34+
IEnumerable<int> ParseInts(string st, string rx) =>
35+
from m in Regex.Matches(st, rx)
36+
select int.Parse(m.Groups[1].Value);
37+
}
38+
39+
record Game(int id, int red, int green, int blue);

2023/Day02/input.refout

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2076
2+
70950

2023/SplashScreen.cs

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,34 @@ public void Show() {
99

1010
var color = Console.ForegroundColor;
1111
Write(0xcc00, false, " ▄█▄ ▄▄█ ▄ ▄ ▄▄▄ ▄▄ ▄█▄ ▄▄▄ ▄█ ▄▄ ▄▄▄ ▄▄█ ▄▄▄\n █▄█ █ █ █ █ █▄█ █ █ █ █ █ █▄ ");
12-
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ /* 2023 */\n \n ");
12+
Write(0xcc00, false, " █ █ █ █ █ █▄█\n █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ {:year 2023}\n ");
13+
Write(0xcc00, false, "\n \n ");
14+
Write(0xcc00, false, " \n \n ");
15+
Write(0xcc00, false, " \n ");
16+
Write(0xcc00, false, " \n \n ");
17+
Write(0xcc00, false, " \n \n ");
18+
Write(0xcc00, false, " \n ");
19+
Write(0xcc00, false, " \n \n ");
20+
Write(0xcc00, false, " \n \n ");
21+
Write(0xcc00, false, " \n ");
22+
Write(0xcc00, false, " \n \n ");
23+
Write(0xcc00, false, " \n \n ");
1324
Write(0xcc00, false, " \n ");
1425
Write(0xcc00, false, " \n \n ");
15-
Write(0xcc00, false, " \n ");
16-
Write(0xcc00, false, " \n \n ");
17-
Write(0xcc00, false, " \n \n ");
18-
Write(0xcc00, false, " \n ");
19-
Write(0xcc00, false, " \n \n ");
20-
Write(0xcc00, false, " \n \n ");
21-
Write(0xcc00, false, " \n ");
22-
Write(0xcc00, false, " \n \n ");
23-
Write(0xcc00, false, " \n \n ");
24-
Write(0xcc00, false, " \n ");
25-
Write(0xcc00, false, " \n \n ");
26-
Write(0xcc00, false, " \n ");
27-
Write(0xcc00, false, " \n ");
28-
Write(0x9b715b, false, "----@");
29-
Write(0x333333, false, " * ");
30-
Write(0x666666, false, " 2\n ");
26+
Write(0xcc00, false, " ");
27+
Write(0xffffff, false, "' ");
28+
Write(0xccccff, false, "- \n ");
29+
Write(0xffffff, false, "' . ");
30+
Write(0xccccff, false, "- -");
31+
Write(0x333333, false, " * ");
32+
Write(0xffffff, false, ". ");
33+
Write(0x666666, false, " 3\n ");
34+
Write(0x9b715b, false, "----@ ");
35+
Write(0xffffff, false, "'''..");
36+
Write(0xffff66, true, "*");
37+
Write(0xffffff, false, "......''' ");
38+
Write(0xcccccc, false, " 2 ");
39+
Write(0xffff66, false, "**\n ");
3140
Write(0xffff66, true, "* ");
3241
Write(0x9b715b, false, "! /^\\ ");
3342
Write(0xcccccc, false, " 1 ");

2023/calendar.svg

Lines changed: 5 additions & 5 deletions
Loading

adventofcode.sln

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.5.002.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "adventofcode", "adventofcode.csproj", "{0311BBC7-3D97-4391-B294-89A21ED184D7}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{0311BBC7-3D97-4391-B294-89A21ED184D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{0311BBC7-3D97-4391-B294-89A21ED184D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{0311BBC7-3D97-4391-B294-89A21ED184D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{0311BBC7-3D97-4391-B294-89A21ED184D7}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {830E1FB4-A083-4DC8-A157-2C1AC6B9F285}
24+
EndGlobalSection
25+
EndGlobal

0 commit comments

Comments
 (0)