Solve 2022/01
parent
f2821aac4c
commit
fc6103528f
@ -0,0 +1,68 @@
|
|||||||
|
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?_
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,28 @@
|
|||||||
|
"""
|
||||||
|
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)
|
@ -0,0 +1,31 @@
|
|||||||
|
"""
|
||||||
|
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)
|
Loading…
Reference in New Issue