Add 2022 day 2
This commit is contained in:
parent
c08fea2ade
commit
477c54e1a8
4 changed files with 2574 additions and 0 deletions
2500
2022/day_2/data.txt
Normal file
2500
2022/day_2/data.txt
Normal file
File diff suppressed because it is too large
Load diff
3
2022/day_2/demo.txt
Normal file
3
2022/day_2/demo.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
A Y
|
||||||
|
B X
|
||||||
|
C Z
|
33
2022/day_2/part1.py
Normal file
33
2022/day_2/part1.py
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
ahand = ("A", "B", "C")
|
||||||
|
bhand = ("X", "Y", "Z")
|
||||||
|
win_tbl = (
|
||||||
|
("A", "Y"),
|
||||||
|
("B", "Z"),
|
||||||
|
("C", "X"),
|
||||||
|
)
|
||||||
|
|
||||||
|
def load(filename):
|
||||||
|
with open(filename) as f:
|
||||||
|
t = 0
|
||||||
|
for l in f:
|
||||||
|
a, b = l.rstrip().split(" ")
|
||||||
|
h = bhand.index(b) + 1
|
||||||
|
|
||||||
|
ai = ahand.index(a)
|
||||||
|
bi = bhand.index(b)
|
||||||
|
|
||||||
|
if ai == bi:
|
||||||
|
t += h + 3
|
||||||
|
|
||||||
|
elif (a, b) in win_tbl:
|
||||||
|
t += h + 6
|
||||||
|
|
||||||
|
else:
|
||||||
|
t += h
|
||||||
|
|
||||||
|
return t
|
||||||
|
|
||||||
|
assert load("demo.txt") == 15
|
||||||
|
t = load("data.txt")
|
||||||
|
print(f"You have {t} points.")
|
||||||
|
|
38
2022/day_2/part2.py
Normal file
38
2022/day_2/part2.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
ahand = ("A", "B", "C")
|
||||||
|
bhand = ("X", "Y", "Z")
|
||||||
|
win_tbl = {
|
||||||
|
"A": "B",
|
||||||
|
"B": "C",
|
||||||
|
"C": "A",
|
||||||
|
}
|
||||||
|
|
||||||
|
defeats_tbl = {
|
||||||
|
"A": "C",
|
||||||
|
"B": "A",
|
||||||
|
"C": "B",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def load(filename):
|
||||||
|
with open(filename) as f:
|
||||||
|
t = 0
|
||||||
|
for l in f:
|
||||||
|
a, b = l.rstrip().split(" ")
|
||||||
|
|
||||||
|
if b == "X":
|
||||||
|
h = ahand.index(defeats_tbl[a]) + 1
|
||||||
|
t += h
|
||||||
|
|
||||||
|
elif b == "Y":
|
||||||
|
h = ahand.index(a) + 1
|
||||||
|
t += h + 3
|
||||||
|
|
||||||
|
elif b == "Z":
|
||||||
|
h = ahand.index(win_tbl[a]) + 1
|
||||||
|
t += h + 6
|
||||||
|
|
||||||
|
return t
|
||||||
|
|
||||||
|
assert load("demo.txt") == 12
|
||||||
|
t = load("data.txt")
|
||||||
|
print("Total points: ", t)
|
Loading…
Reference in a new issue