2022 Day 01 Complete!
This commit is contained in:
parent
586ec1330e
commit
f77481e018
2269
2022/day01/input
Normal file
2269
2022/day01/input
Normal file
File diff suppressed because it is too large
Load Diff
44
2022/day01/main.go
Normal file
44
2022/day01/main.go
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
inp := h.StdinToStringSlice()
|
||||||
|
fmt.Println("# Answer")
|
||||||
|
solve(inp)
|
||||||
|
}
|
||||||
|
|
||||||
|
func solve(input []string) {
|
||||||
|
var elves []int
|
||||||
|
var top1, top2, top3 int
|
||||||
|
elf := 0
|
||||||
|
var sum int
|
||||||
|
record := func() {
|
||||||
|
elves = append(elves, sum)
|
||||||
|
if elf != 0 && sum > elves[top1] {
|
||||||
|
top3, top2, top1 = top2, top1, elf
|
||||||
|
} else if sum > elves[top2] {
|
||||||
|
top3, top2 = top2, elf
|
||||||
|
} else if sum > elves[top3] {
|
||||||
|
top3 = elf
|
||||||
|
}
|
||||||
|
elf++
|
||||||
|
sum = 0
|
||||||
|
}
|
||||||
|
for i := 0; i < len(input); i++ {
|
||||||
|
if input[i] == "" {
|
||||||
|
record()
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
sum = sum + h.Atoi(input[i])
|
||||||
|
}
|
||||||
|
record()
|
||||||
|
fmt.Printf("The elf with the most calories is #%d (%d)\n", top1+1, elves[top1])
|
||||||
|
fmt.Printf("The elf with the second most calories is #%d (%d)\n", top2+1, elves[top2])
|
||||||
|
fmt.Printf("The elf with the third most calories is #%d (%d)\n", top3+1, elves[top3])
|
||||||
|
fmt.Printf("Total by top three: %d\n", elves[top1]+elves[top2]+elves[top3])
|
||||||
|
}
|
94
2022/day01/problem
Normal file
94
2022/day01/problem
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
Advent of Code
|
||||||
|
|
||||||
|
br0xen (AoC++) 2*
|
||||||
|
|
||||||
|
--- Day 1: Calorie Counting ---
|
||||||
|
|
||||||
|
Santa's reindeer typically eat regular reindeer food, but they need a lot of magical energy 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:
|
||||||
|
|
||||||
|
1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000
|
||||||
|
|
||||||
|
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?
|
||||||
|
|
||||||
|
Your puzzle answer was 72070.
|
||||||
|
|
||||||
|
--- Part Two ---
|
||||||
|
|
||||||
|
By the time you calculate the answer to the Elves' question, they've already realized that the Elf carrying the most Calories
|
||||||
|
of food might eventually run out of snacks.
|
||||||
|
|
||||||
|
To avoid this unacceptable situation, the Elves would instead like to know the total Calories carried by the top three Elves
|
||||||
|
carrying the most Calories. That way, even if one of those Elves runs out of snacks, they still have two backups.
|
||||||
|
|
||||||
|
In the example above, the top three Elves are the fourth Elf (with 24000 Calories), then the third Elf (with 11000 Calories),
|
||||||
|
then the fifth Elf (with 10000 Calories). The sum of the Calories carried by these three elves is 45000.
|
||||||
|
|
||||||
|
Find the top three Elves carrying the most Calories. How many Calories are those Elves carrying in total?
|
||||||
|
|
||||||
|
Your puzzle answer was 211805.
|
||||||
|
|
||||||
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
Visible links
|
||||||
|
. https://adventofcode.com/
|
||||||
|
. https://adventofcode.com/2022/about
|
||||||
|
. https://adventofcode.com/2022/events
|
||||||
|
. https://teespring.com/stores/advent-of-code
|
||||||
|
. https://adventofcode.com/2022/settings
|
||||||
|
. https://adventofcode.com/2022/auth/logout
|
||||||
|
. Advent of Code Supporter
|
||||||
|
https://adventofcode.com/2022/support
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022/support
|
||||||
|
. https://adventofcode.com/2022/sponsors
|
||||||
|
. https://adventofcode.com/2022/leaderboard
|
||||||
|
. https://adventofcode.com/2022/stats
|
||||||
|
. https://adventofcode.com/2022/sponsors
|
||||||
|
. https://adventofcode.com/2018/day/25
|
||||||
|
. https://adventofcode.com/2022
|
||||||
|
. https://adventofcode.com/2022/day/1/input
|
14
2022/day01/testinput
Normal file
14
2022/day01/testinput
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000
|
Loading…
Reference in New Issue
Block a user