Day 1 - Part 2
This commit is contained in:
parent
bbfb7017f3
commit
628afe69ac
61
day1/part2/Program.cs
Normal file
61
day1/part2/Program.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using System.Globalization;
|
||||
|
||||
namespace part2;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
// The description does not say this (had to go to reddit to find this)
|
||||
// but the strings can combine the same letter for 2 unique numbers
|
||||
// i.e. sevenine is "79" not "7ine"
|
||||
|
||||
int sum = 0;
|
||||
|
||||
string letters = "abcdefghijklmnopqrstuvwxyz";
|
||||
Dictionary<string, int> written_numbers = new() {
|
||||
{"one", 1},
|
||||
{"two", 2},
|
||||
{"three", 3},
|
||||
{"four", 4},
|
||||
{"five", 5},
|
||||
{"six", 6},
|
||||
{"seven", 7},
|
||||
{"eight", 8},
|
||||
{"nine", 9}
|
||||
};
|
||||
|
||||
StreamReader sr = new StreamReader("input");
|
||||
String line = sr.ReadLine();
|
||||
//Continue to read until you reach end of file
|
||||
while (line != null)
|
||||
{
|
||||
line = line.ToLower();
|
||||
List<int> numbers_in_line = [];
|
||||
|
||||
for(int i = 0; i < line.Length; i++) {
|
||||
foreach(var number in written_numbers) {
|
||||
if(line[i] == number.Key[0]) {
|
||||
if(string.Compare(line, i, number.Key, 0, number.Key.Length) == 0) {
|
||||
numbers_in_line.Add(number.Value);
|
||||
}
|
||||
}
|
||||
|
||||
if(char.IsNumber(line[i])) {
|
||||
numbers_in_line.Add(Int32.Parse(line[i].ToString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sum += numbers_in_line.First() * 10;
|
||||
sum += numbers_in_line.Last();
|
||||
|
||||
Console.WriteLine($"Line: {line} - Sum: {sum}");
|
||||
line = sr.ReadLine();
|
||||
}
|
||||
//close the file
|
||||
sr.Close();
|
||||
|
||||
Console.WriteLine($"Total Sum: {sum}");
|
||||
}
|
||||
}
|
||||
1000
day1/part2/input
Normal file
1000
day1/part2/input
Normal file
File diff suppressed because it is too large
Load Diff
10
day1/part2/part2.csproj
Normal file
10
day1/part2/part2.csproj
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
25
day1/part2/part2.sln
Normal file
25
day1/part2/part2.sln
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.5.002.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "part2", "part2.csproj", "{77D1FD2B-3DFB-4114-B145-CE3B20D4EE36}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{77D1FD2B-3DFB-4114-B145-CE3B20D4EE36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{77D1FD2B-3DFB-4114-B145-CE3B20D4EE36}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{77D1FD2B-3DFB-4114-B145-CE3B20D4EE36}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{77D1FD2B-3DFB-4114-B145-CE3B20D4EE36}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {DA83D587-7910-47BE-BE85-B085901ED607}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Loading…
Reference in New Issue
Block a user