namespace AdventOfCode._2021; public class Day2 { public void Part1() { var input = File.ReadAllLines("2021/input/day2.txt"); int h = 0; int d = 0; foreach (var s in input) { var split = s.Split(' '); (string direction, int units) = (split[0], int.Parse(split[1])); if (direction is "forward") { h += units; } else if (direction is "down") { d += units; } else { d -= units; } } Console.WriteLine(h * d); } public void Part2() { var input = File.ReadAllLines("2021/input/day2.txt"); int h = 0; int d = 0; int aim = 0; foreach (var s in input) { var split = s.Split(' '); (char dir, int units) = (split[0][0], int.Parse(split[1])); switch (dir) { case 'f': h += units; d += aim * units; break; case 'd': aim += units; break; case 'u': aim -= units; break; default: throw new Exception(dir.ToString()); } } Console.WriteLine(h * d); // first input isn't counted. } }