Add comments to solutions so far
This commit is contained in:
@@ -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))
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user