From 0a543ee4464bbb32c34a94877bb0008b27273b97 Mon Sep 17 00:00:00 2001 From: Jake Date: Sat, 3 Dec 2022 12:44:18 +0000 Subject: [PATCH] Add comments to solutions so far --- 2022/Day-01/day01-1.py | 2 ++ 2022/Day-01/day01-2.py | 3 +++ 2022/Day-02/day02-1.py | 6 +++++- 2022/Day-02/day02-2.py | 9 ++++++--- 2022/Day-03/day03-1.py | 5 ++++- 2022/Day-03/day03-2.py | 7 +++++-- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/2022/Day-01/day01-1.py b/2022/Day-01/day01-1.py index db85d1b..73c8bd2 100644 --- a/2022/Day-01/day01-1.py +++ b/2022/Day-01/day01-1.py @@ -3,6 +3,7 @@ total = 0 elves = [] +# Add each line of the input, when we hit a blank line put the current total in a list. with open('input.txt', 'r') as inputFile: for line in inputFile: if line == '\n': @@ -11,4 +12,5 @@ with open('input.txt', 'r') as inputFile: else: total += int(line) +# Print the largest number in the list. print(max(elves)) diff --git a/2022/Day-01/day01-2.py b/2022/Day-01/day01-2.py index 30e4d9c..2f67452 100644 --- a/2022/Day-01/day01-2.py +++ b/2022/Day-01/day01-2.py @@ -3,6 +3,7 @@ total = 0 elves = [] +# Add each line of the input, when we hit a blank line put the current total in a list. with open('input.txt', 'r') as inputFile: for line in inputFile: if line == '\n': @@ -11,9 +12,11 @@ with open('input.txt', 'r') as inputFile: else: total += int(line) +# Find the total of the largest three items in the list. topThree = 0 for i in range(3): topThree += max(elves) elves.remove(max(elves)) +# Print the answer. print(topThree) diff --git a/2022/Day-02/day02-1.py b/2022/Day-02/day02-1.py index 1a166b5..45ecca2 100644 --- a/2022/Day-02/day02-1.py +++ b/2022/Day-02/day02-1.py @@ -1,5 +1,6 @@ #!/usr/bin/python3 +# Define points values for each move and outcome. points = { 'rock': 1, 'paper': 2, @@ -9,6 +10,7 @@ points = { 'win': 6 } +# Map letters to moves. shapes = { 'A': 'rock', 'B': 'paper', @@ -18,6 +20,7 @@ shapes = { 'Z': 'scissors' } +# Calculate whether we won or lost for a given pair of moves. def outcome(myMove, yourMove): wins = { 'rock': 'scissors', @@ -31,8 +34,8 @@ def outcome(myMove, yourMove): else: return 'lose' +# For each set of moves in the input, work out our total score. totalScore = 0 - with open('input.txt', 'r') as inputFile: for line in inputFile: moves = line.strip().split(' ') @@ -41,4 +44,5 @@ with open('input.txt', 'r') as inputFile: totalScore += points[ourMove] totalScore += points[outcome(ourMove, theirMove)] +# Print the answer. print(totalScore) diff --git a/2022/Day-02/day02-2.py b/2022/Day-02/day02-2.py index efd96e6..7272cee 100644 --- a/2022/Day-02/day02-2.py +++ b/2022/Day-02/day02-2.py @@ -1,5 +1,6 @@ #!/usr/bin/python3 +# Define points values for each move and outcome. points = { 'rock': 1, 'paper': 2, @@ -9,27 +10,29 @@ points = { 'win': 6 } +# Map letters to moves. shapes = { 'A': 'rock', 'B': 'paper', 'C': 'scissors', } +# Define what move will win/lose for a given move. wins = { 'rock': ['paper', 'scissors'], 'paper': ['scissors', 'rock'], 'scissors': ['rock', 'paper'] } - +# Map letters to the outcome they represent. outcomes = { 'X': 'lose', 'Y': 'draw', 'Z': 'win' } +# For each line in the input, work out what move we require and what our score would be. totalScore = 0 - with open('input.txt', 'r') as inputFile: for line in inputFile: moves = line.strip().split(' ') @@ -44,5 +47,5 @@ with open('input.txt', 'r') as inputFile: totalScore += (points[requiredOutcome] + points[requiredMove]) - +# Print the answer. print(totalScore) diff --git a/2022/Day-03/day03-1.py b/2022/Day-03/day03-1.py index 0f40bbd..0afa810 100644 --- a/2022/Day-03/day03-1.py +++ b/2022/Day-03/day03-1.py @@ -1,9 +1,11 @@ #!/usr/bin/python3 +# Import lists of the alphabet so we can find indxes later. from string import ascii_lowercase, ascii_uppercase commonItems = [] +# For each backpack, split the contents into two lists and find the common item. with open('input.txt', 'r') as inputFile: for backpack in inputFile: items = [*backpack.strip()] @@ -19,12 +21,13 @@ with open('input.txt', 'r') as inputFile: commonItems.append(item) break +# For all of the common items we found, total up the priorities. totalPriority = 0 - for item in commonItems: if(item in ascii_lowercase): totalPriority += (ascii_lowercase.index(item) + 1) elif(item in ascii_uppercase): totalPriority += (ascii_uppercase.index(item) + 27) +# Print the answer. print(totalPriority) \ No newline at end of file diff --git a/2022/Day-03/day03-2.py b/2022/Day-03/day03-2.py index 3949ed4..e93bc9a 100644 --- a/2022/Day-03/day03-2.py +++ b/2022/Day-03/day03-2.py @@ -1,15 +1,17 @@ #!/usr/bin/python3 +# Import lists of the alphabet so we can find indxes later. from string import ascii_lowercase, ascii_uppercase commonItems = [] backpacks = [] +# Read the whole input file to a list. with open('input.txt', 'r') as inputFile: backpacks = inputFile.readlines() +# Group the backpacks up into threes and find the common item in each three. currentBackpack = 0 - while(currentBackpack < len(backpacks)): currentGroup = [] while(len(currentGroup) < 3): @@ -20,12 +22,13 @@ while(currentBackpack < len(backpacks)): commonItems.append(item) break +# For all of the common items we found, total up the priorities. totalPriority = 0 - for item in commonItems: if(item in ascii_lowercase): totalPriority += (ascii_lowercase.index(item) + 1) elif(item in ascii_uppercase): totalPriority += (ascii_uppercase.index(item) + 27) +# Print the answer. print(totalPriority)