diff --git a/.vscode/settings.json b/.vscode/settings.json index 2abed56..11258b7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,8 @@ { "editor.formatOnSave": true, "dotnet.defaultSolution": "../AdventOfCode2024.sln", - "dotnet.testWindow.useTestingPlatformProtocol": true + "dotnet.testWindow.useTestingPlatformProtocol": true, + "cSpell.words": [ + "Fragmenter" + ] } \ No newline at end of file diff --git a/09/DiskFragmenter.Tests/DiskFragmenter.Tests.csproj b/09/DiskFragmenter.Tests/DiskFragmenter.Tests.csproj new file mode 100644 index 0000000..e5b0806 --- /dev/null +++ b/09/DiskFragmenter.Tests/DiskFragmenter.Tests.csproj @@ -0,0 +1,19 @@ + + + + Exe + net9.0 + enable + enable + CA1822 + + + + + + + + + + + diff --git a/09/DiskFragmenter/DiskFragmenter.csproj b/09/DiskFragmenter/DiskFragmenter.csproj new file mode 100644 index 0000000..89d1400 --- /dev/null +++ b/09/DiskFragmenter/DiskFragmenter.csproj @@ -0,0 +1,21 @@ + + + + Exe + net9.0 + enable + enable + CA1822 + + + + + + + + + PreserveNewest + + + + diff --git a/09/DiskFragmenter/Program.cs b/09/DiskFragmenter/Program.cs new file mode 100644 index 0000000..5f94bf8 --- /dev/null +++ b/09/DiskFragmenter/Program.cs @@ -0,0 +1,24 @@ +using System.Diagnostics; + +if (args.Length is 0) +{ + Console.WriteLine("Please provide a path to the input file."); + return; +} + +if (File.Exists(args[0]) is false) +{ + Console.WriteLine("The provided file does not exist."); + return; +} + +var isPart2 = args.Length is 2 && args[1] is "part2"; +var input = await File.ReadAllLinesAsync(args[0]); + +var stopwatch = new Stopwatch(); +stopwatch.Start(); + +// TODO: Implement solution + +stopwatch.Stop(); +Console.WriteLine($". ({stopwatch.ElapsedMilliseconds}ms)"); \ No newline at end of file diff --git a/AdventOfCode2024.sln b/AdventOfCode2024.sln index b128eeb..ebeba76 100644 --- a/AdventOfCode2024.sln +++ b/AdventOfCode2024.sln @@ -66,6 +66,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResonantCollinearity", "08\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResonantCollinearity.Tests", "08\ResonantCollinearity.Tests\ResonantCollinearity.Tests.csproj", "{4741807B-CD85-4A87-BE6E-DC506C4CD1E6}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "09", "09", "{2971DA3F-AD59-4BE1-A860-4F1B60BCB771}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiskFragmenter", "09\DiskFragmenter\DiskFragmenter.csproj", "{EDD2A424-2BD0-408F-A32D-E5AE3316B68E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiskFragmenter.Tests", "09\DiskFragmenter.Tests\DiskFragmenter.Tests.csproj", "{9A7AAC2C-A23B-4FFE-8B2B-93E204904866}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -139,6 +145,14 @@ Global {4741807B-CD85-4A87-BE6E-DC506C4CD1E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {4741807B-CD85-4A87-BE6E-DC506C4CD1E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {4741807B-CD85-4A87-BE6E-DC506C4CD1E6}.Release|Any CPU.Build.0 = Release|Any CPU + {EDD2A424-2BD0-408F-A32D-E5AE3316B68E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDD2A424-2BD0-408F-A32D-E5AE3316B68E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDD2A424-2BD0-408F-A32D-E5AE3316B68E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDD2A424-2BD0-408F-A32D-E5AE3316B68E}.Release|Any CPU.Build.0 = Release|Any CPU + {9A7AAC2C-A23B-4FFE-8B2B-93E204904866}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A7AAC2C-A23B-4FFE-8B2B-93E204904866}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A7AAC2C-A23B-4FFE-8B2B-93E204904866}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A7AAC2C-A23B-4FFE-8B2B-93E204904866}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {1AFE2FF1-A55D-4D86-A9BB-9875CA0D14D8} = {270B7829-6D23-4B34-91FE-D87D533AF2AB} @@ -157,5 +171,7 @@ Global {23C9756E-F2F4-44CA-B38A-DB92782D7858} = {73EE2FA2-6417-4518-9790-72D4F2B62CAF} {425DF10B-4621-4882-935A-0320F1C4B6DD} = {F2A51E88-BCCC-4778-9369-63E72D052554} {4741807B-CD85-4A87-BE6E-DC506C4CD1E6} = {F2A51E88-BCCC-4778-9369-63E72D052554} + {EDD2A424-2BD0-408F-A32D-E5AE3316B68E} = {2971DA3F-AD59-4BE1-A860-4F1B60BCB771} + {9A7AAC2C-A23B-4FFE-8B2B-93E204904866} = {2971DA3F-AD59-4BE1-A860-4F1B60BCB771} EndGlobalSection EndGlobal