Compare commits
No commits in common. '4534eccffd023f0db95d9a17fa3524608ab5d1b0' and 'f2821aac4cd9618bc56ee01b2f62e27148c0386e' have entirely different histories.
4534eccffd
...
f2821aac4c
@ -1,68 +0,0 @@
|
|||||||
https://adventofcode.com/2022/day/1
|
|
||||||
|
|
||||||
## \--- Day 1: Calorie Counting ---
|
|
||||||
|
|
||||||
Santa's reindeer typically eat regular reindeer food, but they need a lot of
|
|
||||||
[magical energy](/2018/day/25) to deliver presents on Christmas. For that,
|
|
||||||
their favorite snack is a special type of _star_ fruit that only grows deep in
|
|
||||||
the jungle. The Elves have brought you on their annual expedition to the grove
|
|
||||||
where the fruit grows.
|
|
||||||
|
|
||||||
To supply enough magical energy, the expedition needs to retrieve a minimum of
|
|
||||||
_fifty stars_ by December 25th. Although the Elves assure you that the grove
|
|
||||||
has plenty of fruit, you decide to grab any fruit you see along the way, just
|
|
||||||
in case.
|
|
||||||
|
|
||||||
Collect stars by solving puzzles. Two puzzles will be made available on each
|
|
||||||
day in the Advent calendar; the second puzzle is unlocked when you complete
|
|
||||||
the first. Each puzzle grants _one star_. Good luck!
|
|
||||||
|
|
||||||
The jungle must be too overgrown and difficult to navigate in vehicles or
|
|
||||||
access from the air; the Elves' expedition traditionally goes on foot. As your
|
|
||||||
boats approach land, the Elves begin taking inventory of their supplies. One
|
|
||||||
important consideration is food - in particular, the number of _Calories_ each
|
|
||||||
Elf is carrying (your puzzle input).
|
|
||||||
|
|
||||||
The Elves take turns writing down the number of Calories contained by the
|
|
||||||
various meals, snacks, rations, etc. that they've brought with them, one item
|
|
||||||
per line. Each Elf separates their own inventory from the previous Elf's
|
|
||||||
inventory (if any) by a blank line.
|
|
||||||
|
|
||||||
For example, suppose the Elves finish writing their items' Calories and end up
|
|
||||||
with the following list:
|
|
||||||
|
|
||||||
[code]
|
|
||||||
|
|
||||||
1000
|
|
||||||
2000
|
|
||||||
3000
|
|
||||||
|
|
||||||
4000
|
|
||||||
|
|
||||||
5000
|
|
||||||
6000
|
|
||||||
|
|
||||||
7000
|
|
||||||
8000
|
|
||||||
9000
|
|
||||||
|
|
||||||
10000
|
|
||||||
|
|
||||||
[/code]
|
|
||||||
|
|
||||||
This list represents the Calories of the food carried by five Elves:
|
|
||||||
|
|
||||||
* The first Elf is carrying food with `1000`, `2000`, and `3000` Calories, a total of `_6000_` Calories.
|
|
||||||
* The second Elf is carrying one food item with `_4000_` Calories.
|
|
||||||
* The third Elf is carrying food with `5000` and `6000` Calories, a total of `_11000_` Calories.
|
|
||||||
* The fourth Elf is carrying food with `7000`, `8000`, and `9000` Calories, a total of `_24000_` Calories.
|
|
||||||
* The fifth Elf is carrying one food item with `_10000_` Calories.
|
|
||||||
|
|
||||||
In case the Elves get hungry and need extra snacks, they need to know which
|
|
||||||
Elf to ask: they'd like to know how many Calories are being carried by the Elf
|
|
||||||
carrying the _most_ Calories. In the example above, this is _`24000`_ (carried
|
|
||||||
by the fourth Elf).
|
|
||||||
|
|
||||||
Find the Elf carrying the most Calories. _How many total Calories is that Elf
|
|
||||||
carrying?_
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
1000
|
|
||||||
2000
|
|
||||||
3000
|
|
||||||
|
|
||||||
4000
|
|
||||||
|
|
||||||
5000
|
|
||||||
6000
|
|
||||||
|
|
||||||
7000
|
|
||||||
8000
|
|
||||||
9000
|
|
||||||
|
|
||||||
10000
|
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
|||||||
"""
|
|
||||||
Part 1
|
|
||||||
"""
|
|
||||||
|
|
||||||
print("Hello World!")
|
|
||||||
|
|
||||||
file = open("input/input", "r")
|
|
||||||
|
|
||||||
MAXIMUM = 0
|
|
||||||
current = 0
|
|
||||||
|
|
||||||
for line in file.readlines():
|
|
||||||
line = line.strip()
|
|
||||||
|
|
||||||
if line == "":
|
|
||||||
# print("NEXT ELF")
|
|
||||||
if current >= MAXIMUM:
|
|
||||||
MAXIMUM = current
|
|
||||||
current = 0
|
|
||||||
else:
|
|
||||||
line = int(line)
|
|
||||||
current += line
|
|
||||||
# print(line)
|
|
||||||
|
|
||||||
if current >= MAXIMUM:
|
|
||||||
MAXIMUM = current
|
|
||||||
|
|
||||||
print(MAXIMUM)
|
|
@ -1,31 +0,0 @@
|
|||||||
"""
|
|
||||||
Part 2
|
|
||||||
"""
|
|
||||||
|
|
||||||
print("Hello World!")
|
|
||||||
|
|
||||||
file = open("input/input", "r")
|
|
||||||
|
|
||||||
ELVES = []
|
|
||||||
current = 0
|
|
||||||
|
|
||||||
for line in file.readlines():
|
|
||||||
line = line.strip()
|
|
||||||
|
|
||||||
if line == "":
|
|
||||||
ELVES.append(current)
|
|
||||||
current = 0
|
|
||||||
else:
|
|
||||||
line = int(line)
|
|
||||||
current += line
|
|
||||||
|
|
||||||
ELVES.append(current)
|
|
||||||
|
|
||||||
|
|
||||||
ELVES.sort()
|
|
||||||
|
|
||||||
ELVES = list(reversed(ELVES))
|
|
||||||
|
|
||||||
answer = ELVES[0] + ELVES[1] + ELVES[2]
|
|
||||||
|
|
||||||
print(answer)
|
|
@ -1,57 +0,0 @@
|
|||||||
https://adventofcode.com/2022/day/2
|
|
||||||
|
|
||||||
## \--- Day 2: Rock Paper Scissors ---
|
|
||||||
|
|
||||||
The Elves begin to set up camp on the beach. To decide whose tent gets to be
|
|
||||||
closest to the snack storage, a giant [Rock Paper
|
|
||||||
Scissors](https://en.wikipedia.org/wiki/Rock_paper_scissors) tournament is
|
|
||||||
already in progress.
|
|
||||||
|
|
||||||
Rock Paper Scissors is a game between two players. Each game contains many
|
|
||||||
rounds; in each round, the players each simultaneously choose one of Rock,
|
|
||||||
Paper, or Scissors using a hand shape. Then, a winner for that round is
|
|
||||||
selected: Rock defeats Scissors, Scissors defeats Paper, and Paper defeats
|
|
||||||
Rock. If both players choose the same shape, the round instead ends in a draw.
|
|
||||||
|
|
||||||
Appreciative of your help yesterday, one Elf gives you an _encrypted strategy
|
|
||||||
guide_ (your puzzle input) that they say will be sure to help you win. "The
|
|
||||||
first column is what your opponent is going to play: `A` for Rock, `B` for
|
|
||||||
Paper, and `C` for Scissors. The second column--" Suddenly, the Elf is called
|
|
||||||
away to help with someone's tent.
|
|
||||||
|
|
||||||
The second column, you reason, must be what you should play in response: `X`
|
|
||||||
for Rock, `Y` for Paper, and `Z` for Scissors. Winning every time would be
|
|
||||||
suspicious, so the responses must have been carefully chosen.
|
|
||||||
|
|
||||||
The winner of the whole tournament is the player with the highest score. Your
|
|
||||||
_total score_ is the sum of your scores for each round. The score for a single
|
|
||||||
round is the score for the _shape you selected_ (1 for Rock, 2 for Paper, and
|
|
||||||
3 for Scissors) plus the score for the _outcome of the round_ (0 if you lost,
|
|
||||||
3 if the round was a draw, and 6 if you won).
|
|
||||||
|
|
||||||
Since you can't be sure if the Elf is trying to help you or trick you, you
|
|
||||||
should calculate the score you would get if you were to follow the strategy
|
|
||||||
guide.
|
|
||||||
|
|
||||||
For example, suppose you were given the following strategy guide:
|
|
||||||
|
|
||||||
[code]
|
|
||||||
|
|
||||||
A Y
|
|
||||||
B X
|
|
||||||
C Z
|
|
||||||
|
|
||||||
[/code]
|
|
||||||
|
|
||||||
This strategy guide predicts and recommends the following:
|
|
||||||
|
|
||||||
* In the first round, your opponent will choose Rock (`A`), and you should choose Paper (`Y`). This ends in a win for you with a score of _8_ (2 because you chose Paper + 6 because you won).
|
|
||||||
* In the second round, your opponent will choose Paper (`B`), and you should choose Rock (`X`). This ends in a loss for you with a score of _1_ (1 + 0).
|
|
||||||
* The third round is a draw with both players choosing Scissors, giving you a score of 3 + 3 = _6_.
|
|
||||||
|
|
||||||
In this example, if you were to follow the strategy guide, you would get a
|
|
||||||
total score of `_15_` (8 + 1 + 6).
|
|
||||||
|
|
||||||
_What would your total score be if everything goes exactly according to your
|
|
||||||
strategy guide?_
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
A Y
|
|
||||||
B X
|
|
||||||
C Z
|
|
File diff suppressed because it is too large
Load Diff
@ -1,53 +0,0 @@
|
|||||||
"""
|
|
||||||
Part1
|
|
||||||
"""
|
|
||||||
|
|
||||||
file = open("input/input", "r", encoding="utf-8")
|
|
||||||
|
|
||||||
SCORES = {"ROCK": 1, "PAPER": 2, "SCISSORS": 3, "WIN": 6, "DRAW": 3, "LOSS": 0}
|
|
||||||
|
|
||||||
MAPPINGS = {
|
|
||||||
"A": "ROCK",
|
|
||||||
"B": "PAPER",
|
|
||||||
"C": "SCISSORS",
|
|
||||||
"X": "ROCK",
|
|
||||||
"Y": "PAPER",
|
|
||||||
"Z": "SCISSORS",
|
|
||||||
}
|
|
||||||
|
|
||||||
BETTER_THAN = {
|
|
||||||
"ROCK": "PAPER",
|
|
||||||
"PAPER": "SCISSORS",
|
|
||||||
"SCISSORS": "ROCK",
|
|
||||||
}
|
|
||||||
|
|
||||||
score = 0
|
|
||||||
|
|
||||||
for line in file.readlines():
|
|
||||||
line = line.strip()
|
|
||||||
opponent, ours = line.split(" ")
|
|
||||||
|
|
||||||
opponent = MAPPINGS[opponent]
|
|
||||||
ours = MAPPINGS[ours]
|
|
||||||
|
|
||||||
score_this_round = 0
|
|
||||||
score_this_round += SCORES[ours]
|
|
||||||
|
|
||||||
print("opp:", opponent, "our", ours)
|
|
||||||
|
|
||||||
if opponent == ours:
|
|
||||||
outcome = "DRAW"
|
|
||||||
elif ours == BETTER_THAN[opponent]:
|
|
||||||
outcome = "WIN"
|
|
||||||
else:
|
|
||||||
outcome = "LOSS"
|
|
||||||
|
|
||||||
score_this_round += SCORES[outcome]
|
|
||||||
score += score_this_round
|
|
||||||
|
|
||||||
print(outcome, "Score:", score_this_round)
|
|
||||||
print()
|
|
||||||
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(score)
|
|
@ -1,55 +0,0 @@
|
|||||||
"""
|
|
||||||
Part2
|
|
||||||
"""
|
|
||||||
|
|
||||||
file = open("input/input", "r", encoding="utf-8")
|
|
||||||
|
|
||||||
SCORES = {"ROCK": 1, "PAPER": 2, "SCISSORS": 3, "WIN": 6, "DRAW": 3, "LOSS": 0}
|
|
||||||
|
|
||||||
MAPPINGS = {
|
|
||||||
"A": "ROCK",
|
|
||||||
"B": "PAPER",
|
|
||||||
"C": "SCISSORS",
|
|
||||||
"X": "LOSS",
|
|
||||||
"Y": "DRAW",
|
|
||||||
"Z": "WIN",
|
|
||||||
}
|
|
||||||
|
|
||||||
BETTER_THAN = {
|
|
||||||
"ROCK": "PAPER",
|
|
||||||
"PAPER": "SCISSORS",
|
|
||||||
"SCISSORS": "ROCK",
|
|
||||||
}
|
|
||||||
|
|
||||||
WORSE_THAN = {"ROCK": "SCISSORS", "PAPER": "ROCK", "SCISSORS": "PAPER"}
|
|
||||||
|
|
||||||
score = 0
|
|
||||||
|
|
||||||
for line in file.readlines():
|
|
||||||
line = line.strip()
|
|
||||||
opponent, outcome = line.split(" ")
|
|
||||||
|
|
||||||
opponent = MAPPINGS[opponent]
|
|
||||||
outcome = MAPPINGS[outcome]
|
|
||||||
|
|
||||||
score_this_round = 0
|
|
||||||
score_this_round += SCORES[outcome]
|
|
||||||
|
|
||||||
if outcome == "WIN":
|
|
||||||
ours = BETTER_THAN[opponent]
|
|
||||||
elif outcome == "DRAW":
|
|
||||||
ours = opponent
|
|
||||||
else:
|
|
||||||
ours = WORSE_THAN[opponent]
|
|
||||||
|
|
||||||
score_this_round += SCORES[ours]
|
|
||||||
|
|
||||||
print("opp:", opponent, "our", ours)
|
|
||||||
score += score_this_round
|
|
||||||
|
|
||||||
print(outcome, "Score:", score_this_round)
|
|
||||||
print()
|
|
||||||
|
|
||||||
|
|
||||||
print()
|
|
||||||
print(score)
|
|
Loading…
Reference in New Issue