Compare commits
16 Commits
gitea-acti
...
5f2c093e72
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f2c093e72 | |||
| 99db2b88a2 | |||
| bacc1855ab | |||
| 7467fb2fba | |||
| e4f381df4b | |||
| 923e0331f7 | |||
| a4ee3fde16 | |||
| df779eb510 | |||
| 79f63b0bf0 | |||
| 492d2a602a | |||
| fc9a332e63 | |||
| 134cb7aad1 | |||
| 00815609cb | |||
| 14928230b8 | |||
| d2ce81647b | |||
| 2e0faf87eb |
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -17,6 +17,8 @@ jobs:
|
|||||||
run: go build -v ./day01/*.go
|
run: go build -v ./day01/*.go
|
||||||
- name: Build day two
|
- name: Build day two
|
||||||
run: go build -v ./day02/*.go
|
run: go build -v ./day02/*.go
|
||||||
|
- name: Run day one
|
||||||
|
run: go run -v ./day01/*.go
|
||||||
- name: Display Go version
|
- name: Display Go version
|
||||||
run: go version
|
run: go version
|
||||||
- name: List files in the repository
|
- name: List files in the repository
|
||||||
|
|||||||
8
README.md
Normal file
8
README.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Advent of Code 2023
|
||||||
|
|
||||||
|
An attempt to start programming again.
|
||||||
|
|
||||||
|
- [Day 1](./day01/trebuchet.go)
|
||||||
|
- [Day 2](./day02/lottacubes.go)
|
||||||
|
|
||||||
|
This repo gets automatically mirrored to [Github](https://github.com/Doddophonique/aoc2023).
|
||||||
24
UNLICENSE
Normal file
24
UNLICENSE
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more information, please refer to <http://unlicense.org/>
|
||||||
1
day01/inputs
Symbolic link
1
day01/inputs
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../inputs
|
||||||
@@ -109,7 +109,7 @@ func CombineIndexes(s string) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
file, err := os.Open("input")
|
file, err := os.Open("./inputs/day01_input")
|
||||||
check(err)
|
check(err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
|
|||||||
1
day02/inputs
Symbolic link
1
day02/inputs
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../inputs
|
||||||
175
day02/lottacubes.go
Normal file
175
day02/lottacubes.go
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func check(e error) {
|
||||||
|
if e != nil {
|
||||||
|
panic(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var requiredCubes = map[string]int {
|
||||||
|
"red": 12,
|
||||||
|
"green": 13,
|
||||||
|
"blue": 14,
|
||||||
|
}
|
||||||
|
|
||||||
|
type possibleGame struct {
|
||||||
|
redIsPossible bool
|
||||||
|
greenIsPossible bool
|
||||||
|
blueIsPossible bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type minimumSet struct {
|
||||||
|
red int
|
||||||
|
green int
|
||||||
|
blue int
|
||||||
|
}
|
||||||
|
|
||||||
|
func splitSets (s string) ([]string, int) {
|
||||||
|
// Every set is divided by ;
|
||||||
|
sets := strings.SplitN(s, ";", -1)
|
||||||
|
// Number of sets can vary, we need to have that info
|
||||||
|
numSets := len(sets)
|
||||||
|
|
||||||
|
return sets, numSets
|
||||||
|
}
|
||||||
|
|
||||||
|
func newGameSet(s string) map[string]int {
|
||||||
|
m := make(map[string]int)
|
||||||
|
|
||||||
|
tempNumColor := strings.SplitN(s, ",", -1)
|
||||||
|
|
||||||
|
for i := 0; i < len(tempNumColor); i++ {
|
||||||
|
TrimmedNumColor := strings.Trim(tempNumColor[i], " ")
|
||||||
|
NumColor := strings.SplitN(TrimmedNumColor, " ", -1)
|
||||||
|
|
||||||
|
m[NumColor[1]], _ = strconv.Atoi(NumColor[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
func CheckGame(mySet map[string]int, p *possibleGame) {
|
||||||
|
|
||||||
|
if (mySet["red"] > requiredCubes["red"]) {
|
||||||
|
p.redIsPossible = false
|
||||||
|
}
|
||||||
|
if (mySet["green"] > requiredCubes["green"]) {
|
||||||
|
p.greenIsPossible = false
|
||||||
|
}
|
||||||
|
if (mySet["blue"] > requiredCubes["blue"]) {
|
||||||
|
p.blueIsPossible = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func findMinimumSet(mySet map[string]int, m *minimumSet) {
|
||||||
|
if (mySet["red"] > m.red) {
|
||||||
|
m.red = mySet["red"]
|
||||||
|
}
|
||||||
|
if (mySet["green"] > m.green) {
|
||||||
|
m.green = mySet["green"]
|
||||||
|
}
|
||||||
|
if (mySet["blue"] > m.blue) {
|
||||||
|
m.blue = mySet["blue"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func PossibleGamesSum(s string, gn int, gt *int) {
|
||||||
|
// Initialize everything to true. If everything was set to false,
|
||||||
|
// we would have to check in both directions for every pass
|
||||||
|
isPossible := possibleGame{redIsPossible: true,
|
||||||
|
greenIsPossible: true,
|
||||||
|
blueIsPossible: true}
|
||||||
|
// We will pass a pointer so we can go one map at a time and
|
||||||
|
// still maintain the results
|
||||||
|
var isPossiblePoint *possibleGame
|
||||||
|
isPossiblePoint = &isPossible
|
||||||
|
// We receive a string with the sets, not split
|
||||||
|
// We proceed to split
|
||||||
|
sets, numSets := splitSets(s)
|
||||||
|
// We received a []string with sets and the number of sets
|
||||||
|
// Now it's time to create a map
|
||||||
|
var mySet map[string]int
|
||||||
|
// For every set we have in the current game
|
||||||
|
for i := 0; i < numSets; i++ {
|
||||||
|
// We create a map
|
||||||
|
mySet = newGameSet(sets[i])
|
||||||
|
// We check if the game is possible
|
||||||
|
CheckGame(mySet, isPossiblePoint)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPossible.redIsPossible == true) &&
|
||||||
|
(isPossible.greenIsPossible == true) &&
|
||||||
|
(isPossible.blueIsPossible == true) {
|
||||||
|
*gt += gn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func PowerSetsSum(s string, pt *int) {
|
||||||
|
// In this case, we need an array of integers
|
||||||
|
minSet := minimumSet{red: 0, green: 0, blue: 0}
|
||||||
|
|
||||||
|
var minSetPoint *minimumSet
|
||||||
|
minSetPoint = &minSet
|
||||||
|
|
||||||
|
// We receive a string with the sets, not split
|
||||||
|
// We proceed to split
|
||||||
|
sets, numSets := splitSets(s)
|
||||||
|
// We received a []string with sets and the number of sets
|
||||||
|
// Now it's time to create a map
|
||||||
|
var mySet map[string]int
|
||||||
|
// For every set we have in the current game
|
||||||
|
for i := 0; i < numSets; i++ {
|
||||||
|
// We create a map
|
||||||
|
mySet = newGameSet(sets[i])
|
||||||
|
// We find the minimum set
|
||||||
|
findMinimumSet(mySet, minSetPoint)
|
||||||
|
}
|
||||||
|
*pt += (minSet.red * minSet.green * minSet.blue)
|
||||||
|
}
|
||||||
|
|
||||||
|
func PrintAndWait[T any](x T) {
|
||||||
|
fmt.Print(x)
|
||||||
|
fmt.Scanln()
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
file, err := os.Open("./inputs/day02_input")
|
||||||
|
check(err)
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// This variable will hold the game number
|
||||||
|
var gameNum int = 0
|
||||||
|
// This variable will hold the pointer of the sum of possible games
|
||||||
|
var gameSumPoint *int
|
||||||
|
gameSum := 0
|
||||||
|
gameSumPoint = &gameSum
|
||||||
|
|
||||||
|
// Variable for the sum of the power of the sets
|
||||||
|
var power int = 0
|
||||||
|
// Pointer to power, nice variable name
|
||||||
|
var powerPoint *int = &power
|
||||||
|
|
||||||
|
_ = gameNum
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
// Split the string in "Game N" and "cubes color"
|
||||||
|
gameAndCubes := strings.Split(line, ":")
|
||||||
|
// At this point, gameAndCubes[0] has "Game N"
|
||||||
|
// We convert the number that remains after replacing "Game " with ""
|
||||||
|
gameNum, _ = strconv.Atoi(strings.Replace(gameAndCubes[0], "Game ", "", 1))
|
||||||
|
// Now, for every game, split the sets
|
||||||
|
PossibleGamesSum(gameAndCubes[1], gameNum, gameSumPoint)
|
||||||
|
PowerSetsSum(gameAndCubes[1], powerPoint)
|
||||||
|
}
|
||||||
|
fmt.Printf("The sum of possible games is: %d\n", gameSum)
|
||||||
|
fmt.Printf("The sum of the power of sets is: %d\n", power)
|
||||||
|
}
|
||||||
72
day03/engine-schema.go
Normal file
72
day03/engine-schema.go
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
// "strings"
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
|
"regexp"
|
||||||
|
// "strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func check(e error) {
|
||||||
|
if e != nil {
|
||||||
|
panic(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func PrintAndWait(x ...any) {
|
||||||
|
fmt.Print(x)
|
||||||
|
fmt.Scanln()
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
file, err := os.Open("./inputs/day03_input")
|
||||||
|
check(err)
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// This regex find the numbers inside strings
|
||||||
|
renum := regexp.MustCompile("[0-9]+")
|
||||||
|
resym := regexp.MustCompile("[^0-9.]+")
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
var lines []string
|
||||||
|
|
||||||
|
// Read the whole file into an array of strings
|
||||||
|
for scanner.Scan() {
|
||||||
|
lines = append(lines, scanner.Text())
|
||||||
|
}
|
||||||
|
numLines := len(lines)
|
||||||
|
numbers := make([][]int, numLines)
|
||||||
|
_ = numbers
|
||||||
|
|
||||||
|
/* Line [0] needs to check only line 1 for symbols.
|
||||||
|
Similarly, the last line needs to check only
|
||||||
|
(last line index - 1) for symbols.
|
||||||
|
So we first check the line [0], then start a loop
|
||||||
|
from 1 to (last line index - 1)
|
||||||
|
*/
|
||||||
|
firstLineNums := renum.FindAllStringIndex(lines[0], -1)
|
||||||
|
firstLineSymbolsIndex := resym.FindAllStringIndex(lines[0], -1)
|
||||||
|
secondLineSymbolsIndex := resym.FindAllStringIndex(lines[1], -1)
|
||||||
|
|
||||||
|
PrintAndWait(firstLineNums)
|
||||||
|
PrintAndWait(firstLineSymbolsIndex)
|
||||||
|
PrintAndWait(secondLineSymbolsIndex)
|
||||||
|
|
||||||
|
|
||||||
|
/* This code may need to be scrapped, not sure yet.
|
||||||
|
// The 2D array of numbers will hold all the numbers to easily
|
||||||
|
// match them with corresponding strings in the file using the index
|
||||||
|
numbers := make([][]int, numLines)
|
||||||
|
// For every line in the file, cerate an array of numbers
|
||||||
|
for i := 0; i < numLines; i++ {
|
||||||
|
tempNums := renum.FindAllString(lines[i], -1)
|
||||||
|
for j := 0; j < len(tempNums); j++ {
|
||||||
|
num, _ := strconv.Atoi(tempNums[j])
|
||||||
|
numbers[i] = append(numbers[i], num)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
1
day03/inputs
Symbolic link
1
day03/inputs
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../inputs
|
||||||
100
inputs/day02_input
Normal file
100
inputs/day02_input
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
Game 1: 4 red, 1 green, 15 blue; 6 green, 2 red, 10 blue; 7 blue, 6 green, 4 red; 12 blue, 10 green, 3 red
|
||||||
|
Game 2: 3 green, 18 blue; 14 green, 4 red, 2 blue; 3 red, 14 green, 15 blue
|
||||||
|
Game 3: 12 green, 2 blue; 9 green; 1 red, 11 blue, 4 green
|
||||||
|
Game 4: 4 blue, 8 green, 5 red; 6 red, 7 blue, 9 green; 2 green, 2 red, 2 blue; 2 green, 6 blue, 9 red; 10 red, 9 green
|
||||||
|
Game 5: 12 red, 1 green, 7 blue; 13 red, 16 blue; 16 blue, 10 red; 4 blue; 16 blue, 7 red; 1 blue, 7 red
|
||||||
|
Game 6: 17 blue, 2 red; 5 blue, 6 green, 2 red; 5 green, 5 blue; 5 green, 12 blue, 4 red
|
||||||
|
Game 7: 2 red, 1 blue, 10 green; 8 red, 14 green, 9 blue; 15 red, 1 blue, 6 green; 9 blue, 3 green, 10 red; 7 blue, 13 red, 4 green
|
||||||
|
Game 8: 1 green, 2 blue; 7 red, 2 blue, 1 green; 1 red, 2 green; 4 red, 1 blue; 11 red, 2 green, 2 blue; 1 blue, 2 green, 11 red
|
||||||
|
Game 9: 11 green, 11 blue, 6 red; 2 green, 3 blue, 2 red; 2 red, 11 blue, 14 green; 5 green, 7 red, 7 blue; 7 green, 1 red, 12 blue; 1 red, 8 green, 7 blue
|
||||||
|
Game 10: 2 red, 8 green, 7 blue; 10 red, 5 green, 2 blue; 4 red, 8 green, 16 blue; 10 blue, 3 green, 15 red
|
||||||
|
Game 11: 2 blue, 2 green, 5 red; 1 green, 3 red, 3 blue; 11 green, 1 red, 2 blue
|
||||||
|
Game 12: 8 blue, 11 green, 14 red; 10 green, 13 red, 2 blue; 1 red, 6 green, 4 blue; 13 red, 11 green, 6 blue
|
||||||
|
Game 13: 15 red, 17 green, 1 blue; 12 red, 1 blue, 1 green; 2 red, 1 blue, 14 green
|
||||||
|
Game 14: 6 green, 11 red, 3 blue; 6 green, 2 blue; 2 green, 10 red, 8 blue; 2 red; 1 green, 9 red; 3 blue, 1 green, 3 red
|
||||||
|
Game 15: 11 blue, 11 green, 4 red; 3 green, 10 blue; 2 red, 9 green, 9 blue
|
||||||
|
Game 16: 2 blue, 11 green; 1 red, 1 blue, 11 green; 12 green, 1 blue, 1 red; 3 blue, 14 green, 1 red; 14 green, 4 blue; 2 blue, 12 green
|
||||||
|
Game 17: 1 red, 2 blue, 4 green; 4 blue, 3 green; 1 green, 1 red, 6 blue; 1 red, 7 blue; 2 green
|
||||||
|
Game 18: 3 red, 3 blue, 7 green; 2 blue, 2 red, 2 green; 4 red, 12 green; 5 green, 2 blue, 4 red; 3 red
|
||||||
|
Game 19: 15 red, 7 blue, 10 green; 5 green, 8 red; 9 green, 8 red; 5 red, 10 green
|
||||||
|
Game 20: 15 blue, 6 green, 11 red; 13 red, 9 blue, 1 green; 15 blue, 10 red, 11 green
|
||||||
|
Game 21: 15 red, 4 green; 11 red, 2 blue, 4 green; 5 blue, 2 green, 4 red; 4 red, 5 blue; 6 red, 3 blue, 1 green
|
||||||
|
Game 22: 4 green, 4 red, 13 blue; 3 red, 7 blue, 9 green; 12 blue, 13 green, 5 red
|
||||||
|
Game 23: 20 green, 4 red; 6 blue, 9 red, 7 green; 6 green
|
||||||
|
Game 24: 1 green, 3 blue, 6 red; 1 green, 1 blue, 2 red; 3 blue, 5 red, 1 green
|
||||||
|
Game 25: 2 red, 9 blue, 2 green; 2 green, 1 red, 5 blue; 3 red, 1 green, 3 blue; 8 blue, 2 green, 3 red; 12 blue, 3 red; 1 blue, 2 green, 1 red
|
||||||
|
Game 26: 2 blue, 5 green, 20 red; 2 blue, 6 red, 9 green; 3 red, 2 blue, 5 green
|
||||||
|
Game 27: 17 blue, 2 red, 14 green; 15 green, 16 blue, 2 red; 13 blue, 13 green; 1 red, 7 green, 3 blue; 1 blue, 2 green
|
||||||
|
Game 28: 5 blue, 6 red, 3 green; 7 red, 19 green; 11 blue, 13 green
|
||||||
|
Game 29: 1 blue, 8 red, 7 green; 1 green, 1 red; 8 red, 7 green, 1 blue; 7 green, 2 red; 1 blue, 7 red; 1 blue, 2 red, 5 green
|
||||||
|
Game 30: 3 red, 17 blue; 11 red, 3 blue, 8 green; 7 green, 12 blue, 10 red; 5 blue, 2 green
|
||||||
|
Game 31: 14 blue, 7 green; 12 green, 14 blue, 2 red; 17 blue, 2 red, 8 green; 2 red, 3 blue, 11 green; 9 green, 4 blue; 1 red, 3 green, 1 blue
|
||||||
|
Game 32: 15 red, 1 blue, 10 green; 15 green, 10 red, 1 blue; 2 red, 6 green, 1 blue
|
||||||
|
Game 33: 10 green, 1 red, 16 blue; 11 blue, 14 green, 3 red; 14 green, 13 blue; 17 blue, 2 red, 3 green
|
||||||
|
Game 34: 8 red, 7 blue, 8 green; 3 green, 1 red; 1 red, 1 green, 5 blue; 6 red, 8 green, 2 blue; 7 red, 8 blue, 3 green
|
||||||
|
Game 35: 5 blue, 19 red; 2 blue, 11 red, 1 green; 16 red, 10 blue; 7 green, 3 blue, 6 red; 3 green, 18 red, 5 blue; 8 blue, 5 red
|
||||||
|
Game 36: 9 red, 6 green, 10 blue; 9 red, 15 green, 6 blue; 6 red, 1 blue, 14 green
|
||||||
|
Game 37: 7 green, 8 red, 2 blue; 3 blue, 5 red, 16 green; 1 green, 1 red, 3 blue
|
||||||
|
Game 38: 5 green, 5 red, 3 blue; 10 blue, 19 red, 9 green; 2 red, 3 blue, 11 green
|
||||||
|
Game 39: 15 red, 11 blue, 5 green; 11 green, 2 red, 6 blue; 2 blue, 3 green, 6 red; 15 red, 3 blue, 13 green
|
||||||
|
Game 40: 7 green, 4 red, 1 blue; 6 blue, 6 green, 2 red; 2 blue, 3 red, 1 green; 1 blue, 3 red, 3 green; 2 red, 5 green, 3 blue
|
||||||
|
Game 41: 10 blue, 8 green, 9 red; 7 blue, 9 red, 2 green; 10 blue, 4 red, 5 green
|
||||||
|
Game 42: 8 blue, 13 green, 14 red; 8 blue, 1 green, 11 red; 4 red, 6 green, 3 blue; 14 green, 4 red, 2 blue
|
||||||
|
Game 43: 2 red, 10 green, 19 blue; 5 blue, 4 green, 9 red; 9 green, 9 red, 2 blue
|
||||||
|
Game 44: 6 red, 2 green, 3 blue; 2 blue, 12 red, 6 green; 1 red, 10 blue; 12 red, 6 green, 2 blue; 14 red, 13 green, 3 blue; 10 green, 9 blue, 11 red
|
||||||
|
Game 45: 2 blue, 1 red, 1 green; 1 green, 1 blue; 2 green, 2 blue
|
||||||
|
Game 46: 7 green, 1 red; 1 green, 4 blue, 1 red; 3 blue, 4 green, 1 red; 1 red, 4 green; 1 blue, 12 green, 1 red; 16 green, 1 blue
|
||||||
|
Game 47: 4 blue, 8 green, 3 red; 6 red, 1 green, 3 blue; 16 green, 4 blue, 1 red; 4 blue, 8 red
|
||||||
|
Game 48: 1 blue, 9 red, 8 green; 8 green, 2 blue, 6 red; 2 green; 4 blue, 5 red; 1 blue, 9 red, 9 green; 1 red, 1 blue, 3 green
|
||||||
|
Game 49: 3 green, 2 blue; 7 blue, 4 red; 20 green, 5 red, 13 blue; 20 green, 1 red, 6 blue
|
||||||
|
Game 50: 3 red, 3 green; 3 green, 3 red; 2 blue, 10 red; 3 blue, 5 green; 14 red, 2 green, 2 blue; 7 red, 2 green
|
||||||
|
Game 51: 3 green, 3 blue, 2 red; 4 green, 16 red, 3 blue; 1 blue, 3 red; 9 red, 1 blue, 4 green
|
||||||
|
Game 52: 6 red, 18 green, 7 blue; 2 blue, 1 red, 5 green; 8 blue, 6 red, 1 green; 1 red, 1 blue; 6 red, 3 green, 10 blue
|
||||||
|
Game 53: 1 blue, 10 red, 3 green; 13 red, 2 green, 1 blue; 1 green, 2 red
|
||||||
|
Game 54: 4 blue, 6 green, 2 red; 5 blue, 6 red, 2 green; 6 blue, 4 green, 8 red; 13 red, 10 blue, 1 green; 5 red, 5 green, 9 blue
|
||||||
|
Game 55: 4 green, 18 red, 4 blue; 9 blue, 7 green, 16 red; 5 red, 6 blue, 14 green; 13 green, 11 red, 9 blue; 6 blue, 13 green, 1 red; 10 blue, 12 red, 14 green
|
||||||
|
Game 56: 8 green, 5 blue, 10 red; 10 green, 7 red, 12 blue; 11 red, 12 blue, 1 green; 4 blue, 6 red, 10 green; 17 blue, 8 green, 2 red
|
||||||
|
Game 57: 1 green, 2 red; 2 green, 5 red, 1 blue; 13 red, 3 green, 4 blue; 3 blue, 13 red, 9 green
|
||||||
|
Game 58: 1 red, 7 blue, 4 green; 2 green, 1 blue, 1 red; 1 green, 11 blue; 12 blue; 1 blue, 5 green, 1 red; 3 green, 11 blue, 1 red
|
||||||
|
Game 59: 5 green, 3 blue, 17 red; 2 red, 9 green; 1 blue, 4 green
|
||||||
|
Game 60: 5 red, 5 green, 1 blue; 2 red, 2 blue, 6 green; 2 red, 3 blue, 3 green
|
||||||
|
Game 61: 2 green, 3 blue, 4 red; 17 green, 1 blue; 1 green, 6 red, 4 blue; 3 blue, 9 green, 3 red; 18 green, 7 red, 2 blue
|
||||||
|
Game 62: 5 red; 3 blue, 9 green; 3 red, 13 blue, 10 green; 14 green, 1 red, 2 blue; 7 blue, 13 green
|
||||||
|
Game 63: 12 blue, 5 green; 5 green, 1 red, 1 blue; 4 red, 7 green, 9 blue; 8 blue, 2 green, 7 red
|
||||||
|
Game 64: 3 blue, 11 green; 5 blue, 2 red, 5 green; 17 green, 5 blue, 1 red; 4 red, 3 blue, 4 green
|
||||||
|
Game 65: 2 red, 1 blue, 2 green; 7 green, 2 red, 1 blue; 2 blue, 7 green, 1 red; 3 blue, 8 green, 3 red
|
||||||
|
Game 66: 4 red, 12 blue, 1 green; 20 blue, 3 green, 2 red; 11 blue, 1 green
|
||||||
|
Game 67: 12 blue, 10 red, 13 green; 19 green, 4 red, 7 blue; 12 red, 9 blue, 13 green
|
||||||
|
Game 68: 2 blue, 17 green; 12 green, 2 red; 5 red, 2 green, 4 blue; 4 blue
|
||||||
|
Game 69: 17 blue, 3 red, 1 green; 4 green, 8 blue, 8 red; 4 green, 7 red, 1 blue; 8 red, 1 green, 11 blue; 13 blue, 10 red, 9 green; 14 blue, 5 green, 6 red
|
||||||
|
Game 70: 1 red, 2 blue, 4 green; 13 blue, 3 red, 2 green; 6 green, 8 blue
|
||||||
|
Game 71: 5 red, 7 green, 1 blue; 11 green, 4 red, 1 blue; 1 red, 12 green, 10 blue; 1 red, 7 blue, 12 green
|
||||||
|
Game 72: 9 blue, 4 green, 1 red; 6 green, 4 blue; 8 green, 5 blue, 1 red
|
||||||
|
Game 73: 1 blue, 10 green, 14 red; 4 green; 2 blue, 9 red, 4 green; 2 blue, 13 green; 13 green, 13 red; 7 red, 5 green, 2 blue
|
||||||
|
Game 74: 3 red, 1 blue, 3 green; 4 green, 1 blue, 1 red; 2 blue, 10 green, 1 red; 1 blue, 3 red, 1 green
|
||||||
|
Game 75: 1 red, 1 blue, 1 green; 2 red, 1 green, 4 blue; 2 red, 4 blue; 1 blue, 1 red
|
||||||
|
Game 76: 4 green, 2 blue, 6 red; 7 green, 1 red; 8 green, 4 red
|
||||||
|
Game 77: 8 green, 7 blue, 5 red; 6 red, 14 green, 7 blue; 8 green, 7 blue; 1 red, 8 green, 8 blue
|
||||||
|
Game 78: 6 red, 3 blue, 3 green; 7 blue, 10 red; 5 green, 10 blue, 1 red; 3 green, 11 blue, 4 red; 14 red, 9 blue, 2 green; 16 red, 2 green, 12 blue
|
||||||
|
Game 79: 1 green; 5 green; 11 green, 3 blue, 2 red; 3 blue
|
||||||
|
Game 80: 2 green, 2 red; 1 blue, 1 green, 1 red; 1 blue, 1 green, 2 red; 2 red; 5 green
|
||||||
|
Game 81: 10 blue, 2 red, 9 green; 4 red, 12 blue, 5 green; 7 green, 4 blue, 6 red; 1 red, 13 green, 14 blue; 13 green, 11 blue
|
||||||
|
Game 82: 4 blue, 2 green; 7 blue, 3 green, 5 red; 1 red, 4 blue, 3 green; 5 blue, 1 red, 6 green; 6 green, 4 red; 11 blue, 3 red, 5 green
|
||||||
|
Game 83: 12 green; 5 red, 8 green; 11 red, 14 green, 1 blue; 9 green, 4 red
|
||||||
|
Game 84: 5 blue, 1 red; 16 blue, 5 green; 1 red, 9 blue, 3 green; 11 blue; 1 green, 2 blue; 1 red, 7 blue, 4 green
|
||||||
|
Game 85: 17 red, 5 blue; 18 blue, 2 red, 2 green; 18 blue, 2 green, 8 red
|
||||||
|
Game 86: 4 red, 1 blue, 11 green; 6 blue, 7 green, 1 red; 3 green, 4 blue; 2 red, 7 blue, 2 green
|
||||||
|
Game 87: 4 red, 5 blue; 1 green, 15 red, 1 blue; 11 blue, 12 red
|
||||||
|
Game 88: 11 green, 3 red, 1 blue; 6 green, 1 blue, 1 red; 1 blue, 3 green; 2 blue, 4 green, 2 red
|
||||||
|
Game 89: 2 green; 1 red, 2 green, 3 blue; 4 blue, 1 red, 10 green; 4 blue, 5 green; 6 blue, 1 red, 10 green
|
||||||
|
Game 90: 15 red, 7 green, 17 blue; 7 blue, 1 red; 7 green, 6 red, 3 blue
|
||||||
|
Game 91: 2 blue, 17 red, 6 green; 1 green, 1 blue, 6 red; 6 red, 4 blue; 10 green, 14 red, 1 blue; 7 blue, 10 green, 10 red; 16 red, 11 green, 9 blue
|
||||||
|
Game 92: 1 green, 8 blue, 4 red; 4 green, 4 red, 4 blue; 1 green, 7 red, 4 blue
|
||||||
|
Game 93: 11 blue, 12 red, 1 green; 9 blue, 2 green, 5 red; 7 red, 5 blue, 2 green
|
||||||
|
Game 94: 7 blue, 10 green; 9 green, 9 blue, 2 red; 1 red, 5 green, 4 blue
|
||||||
|
Game 95: 1 green, 1 blue, 2 red; 6 red; 1 blue; 1 green, 1 blue, 6 red
|
||||||
|
Game 96: 1 blue, 1 red, 2 green; 4 red, 13 green, 1 blue; 1 blue, 13 green, 5 red; 7 green, 4 red
|
||||||
|
Game 97: 10 blue, 5 red, 5 green; 4 red, 8 green, 2 blue; 5 red, 2 green, 15 blue; 2 red, 1 green, 4 blue; 2 red, 14 blue; 14 blue, 4 green
|
||||||
|
Game 98: 11 red, 8 green, 9 blue; 3 blue, 1 green, 14 red; 10 blue, 2 red, 4 green; 7 blue, 11 red, 3 green; 5 red, 12 blue, 4 green; 7 green, 7 blue, 8 red
|
||||||
|
Game 99: 3 green, 2 blue, 1 red; 15 red, 8 blue, 7 green; 18 red, 12 blue, 2 green
|
||||||
|
Game 100: 11 red, 1 blue, 2 green; 3 red, 3 green; 1 blue, 8 red, 4 green; 5 green, 5 blue, 1 red; 2 green, 1 red, 6 blue; 2 green, 8 red, 1 blue
|
||||||
140
inputs/day03_input
Normal file
140
inputs/day03_input
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
...............307............130..................969...601...186.........................................312....628..........878..........
|
||||||
|
......479#../..*..............................#.....*......*............../309.....484........................*......-..........+.....89....
|
||||||
|
...........726..352...461..69..............435.....390...625....................................459.........152...-....580............*.....
|
||||||
|
.......................*.......454*674.448......65................257....104*762....&..............*269.........558.&.....*907.........652..
|
||||||
|
.....................164.....-..............532*.....................................484......108........955.........252..........321.......
|
||||||
|
.......270....*..............470.......................632....................*...................$............352...................*......
|
||||||
|
820........782.347...................*838..*371..475.......607...557.......201.29..............814....=.....15*....893..............143.....
|
||||||
|
...*..796...........449..138......991.....2........*....28....*.....*588.............................353..................*.................
|
||||||
|
582...../..333.............@..224............%....4.....*.....399........883..#859.........*341...........583*40.......366.951......170*814.
|
||||||
|
...............................*....*.....252......................551.....*.......91...374.....665.804*..........938...........694.........
|
||||||
|
...549.769..............527..466.169.712.......898.......408......*............-...*............*.......912.......*.......771%.../..........
|
||||||
|
.....*...=.875*342......$........................@........-.....846.........610..829.934*508...79............&691..48...................483.
|
||||||
|
....402.............................423-..............................465.........................342.....................@.................
|
||||||
|
..............837..................................264..................................*823.180....@.........%.........538............634..
|
||||||
|
..........807*....990+.................453............*277........657..379...........200.......*.............296..............767..885......
|
||||||
|
744...611................@........+.............500........866.....*......*..717............656..80...254................&775...%..*........
|
||||||
|
.......%.......*.2....878..793.97..143.413.&856......329*...*...732......878./.........191...............*..........+..............584......
|
||||||
|
.........535.506..............*.........-.................368.......................#.+........*.........429.......363......................
|
||||||
|
..564....*................966........................189......=............/24....939......26...547.......................193*241...........
|
||||||
|
.....*......................-..........................*...204........156......7............*................/.717*..................296....
|
||||||
|
..826.....924.......................956..............920..................259.-......$......286........6..955.........................=..457
|
||||||
|
......124*......................48.....=...435..............12.....886....*........411..........*170..%............90..-295.624.............
|
||||||
|
...........................290....*375.............747.....................175..........................653........*...........*............
|
||||||
|
..........642*157...........*.............................218.945..949&...................864+....720..*...........883.786-.....434..-..&...
|
||||||
|
...118.................@.....309...586............698.152....*..............250......*954........*......932...414...................239.39..
|
||||||
|
......@..999..574.......302..................53..=......*......933.69..............21.........538.............@................143..........
|
||||||
|
........*........+...........267..587*........*...........25......*..........241......289.........436.........................*.............
|
||||||
|
.......448.............437....*.......334...605......../..=...........689...%.........*...25.........*....97........171.780....813..836.....
|
||||||
|
......................*........169...............427...94.........389..$........360............/....692.....*......*......*.........%.......
|
||||||
|
......641...-..679.541..56.606...............490*.............871..........757.................612........64.....256...*...281..............
|
||||||
|
...........419...*......*..*..........................................*705...-.......................*.........@.......121..................
|
||||||
|
.......*.......786....738...28.........83.550........980...........915...............475..@.........524...=..145.349.................331....
|
||||||
|
....215.922.......................766.%....*.............993.................-.968..*.....301............205............................*...
|
||||||
|
............775..............273..*.........168.....504...$.....179.....+..466...*....352........850................771-.........-.......729
|
||||||
|
..699@........................*..174...............#........573*.......191.......567..*....925*....$......825..................543....&.....
|
||||||
|
........#....................939.......137...#..........474......../.................975........$.....219*............935............94.....
|
||||||
|
.....508...547....+.455..347.....593....&...56...140.......*246.198.....@....41...........46.476...........539...........+.15...............
|
||||||
|
...............210..........-.......*...............*773.............336....*..............+..........847.....*.............*.....957.......
|
||||||
|
...435...........................736...987.....573........32*............135.....60*405.........802*6...$......252....@...208.129*..........
|
||||||
|
.............187....353...............*..........*..504......276.........................#.........................838.............604......
|
||||||
|
..202...79....$........*..82-.............../.580......*..............181.......288......925.939....292......158..................*.........
|
||||||
|
.....................746.................381.......211..272...........*.....890....*215.........=...........*............953....22..........
|
||||||
|
.........................957......#..................*......../.......240....*............18.................294...766...............*......
|
||||||
|
.......483..434$........*.........184......#.....&..561.......354.........445....*626.......*174......................*54....603..432.457...
|
||||||
|
......#..........916.231..*178..........967...902........895..................135.............................207...............*...........
|
||||||
|
..941.....600...*...................31...............*.../............138*559.......19.803..........396.........&..377.....261...904........
|
||||||
|
...........*...146....#........626....*............809......199................@........*..............+.....#.......*.275*............%....
|
||||||
|
...........181.......459.486.....*.....912....787..........*..................847.....160.433.728.........901......404................899...
|
||||||
|
..........................*.....97...........*..............252..............................*.......+.........451........434..*............
|
||||||
|
...621...294..10.........913..........5..318.349.......749.......457......594........................326.........*..........%.884........494
|
||||||
|
.....*...*...-.........................$...........157.@........*..........*....&..951....524..869#..............405.................416....
|
||||||
|
....864.631....=......958..........................*....../.....953.......690..144..$.......*..........................204.&....%.......+...
|
||||||
|
750.............868....*.....430............882...98.......655..........................98.961...674........*.........*....955..530.........
|
||||||
|
...*..................459.......*929..........$...................281....-...............*......*.....38...688........878...................
|
||||||
|
.779....494.................+........-725............978..............134......2.......465....685.929*............759............351..291...
|
||||||
|
.....51*.......244....173..222..233........153*......*....123..............*.....324......................#.456.#...%...............-..@....
|
||||||
|
.........&....*.......$.............................542...*......77.......288...*....*51.......624......68....*.888....507..................
|
||||||
|
...213.367.953................................-667.......225.......*285.......506.177....*32.....*..........43........../...................
|
||||||
|
...#.................753.%........506.................................................131.....793...-.....-....................917$.147.....
|
||||||
|
.........275.............372.....$..........$........679.407..674..205#....406............647.....297..642.........621...............*......
|
||||||
|
.........*...................................173........*.....................*721........*.......................*....#207..........533....
|
||||||
|
.........68..............&.........274............322*...................707............280...............188..272..+...........223.........
|
||||||
|
.....553..................289.534.....%...830.........927..................*.176............*.............*..........217.........*..........
|
||||||
|
...................$..-.......-..........*................796*..........606...%...756...-.994....252.694..351.793$........930..230.....611..
|
||||||
|
.841%..659.237..356...116.............683...860...............494................$....127..............*....................*.........*.....
|
||||||
|
......#....................558..#891........*........418............&.............................22..323.....540...92....792.........408...
|
||||||
|
.................231*780....*.........*452.82........*........940..709....................662....*..............*...@...........432.........
|
||||||
|
....456.91...............972.....=.523.............949.837#........................823....*....627..............880....511.............203..
|
||||||
|
...$......@.........190.......162........508..........................158..861..........533.............749............................=....
|
||||||
|
......................*.............117..@....608....967.10............../........................&........$....................800.........
|
||||||
|
..752/...988.....82..281....894........*......-..................533.............692...............524.............=....623......@....939...
|
||||||
|
.........*...217*..............*.......51.........400...............&........200..@......435..484&........2*648.95..416.....................
|
||||||
|
.........319..................788....................*..279.......*.....................*...........321.........*..........464...286*....311
|
||||||
|
................733...457............*.............65...*.........620...205....457.782..513..342..........561.670.160..899.*.........607....
|
||||||
|
...............*.....+............397.....613/..........938.171...............*....................869......$.........*.....589.............
|
||||||
|
.............85..............=324.................189.........#.......808..578..-.........170*........*..&..........461.....................
|
||||||
|
......................992.............555........=...............375.....=.....599............336...835.282.....714.........................
|
||||||
|
...@......622.........%...............-....%....................*.....................705.287................../....955.426..140............
|
||||||
|
..202.....*...365.........$8....636*....148....................720............648......+...*................%........*...................220
|
||||||
|
.........223...+....................554........629...........*......785..............&.....460....*...#..848...24.948....961............*...
|
||||||
|
....................274..........................*...........995...........92.823.....958........185.983...............=..*....566....33....
|
||||||
|
.............146#....+....865.307................797...411................./..............577.......................245....935..............
|
||||||
|
....150...................*......*..560.................+...+298...............*....213.......984.......103.811.......................&.....
|
||||||
|
.......*..297..-905.822.643.....452....*333............................527..911.......*.........=.........*....*...............834.76.410...
|
||||||
|
..........+........../.......*...............774.....................................228..764-...........806..621.............*.....=.......
|
||||||
|
.......83.......753.......664.36..371..132.........341.......347...267........@813.............341*322..............237%.....134......$.....
|
||||||
|
....66*...630......*.238.............$.$......609.....*673.........*...920-...............%................937*873................844.807...
|
||||||
|
.........*......410.....#.........90..........%....-............789.........316.........755.932..$....................*921....363..=........
|
||||||
|
.........524........-.........52..........422...349......................15....*............*....550.........384..9.22........*.............
|
||||||
|
..............752....809..........$........*............#......397.......*..147....666.....83................*..............747......@474...
|
||||||
|
.......995......*............898.753.....305...........306......*......344............#....................985./................206=........
|
||||||
|
......*......172...............*...........................-..603..........*771...870...260....609..............588.....+503................
|
||||||
|
.....475.....................412.634*480..155....$824...845........409..367..........@..........*..498...............................893....
|
||||||
|
317......737.654.............................*97............781...*..............#......184..252..*....@.564*347......312*..............*...
|
||||||
|
............*.............658..........91.............402..*.....929.....346.....912......=......825.412.........908..........&..........500
|
||||||
|
.889..%.............471*...*...........*.........685-...+..208.........................*..................*291..*.............926.826.......
|
||||||
|
.......647...@..........84.929........518.375.........+.............%...............139................467......813.690...........*.........
|
||||||
|
...........276...................165.........%......778............412....594.619...............768........401..........195*861..70...$.....
|
||||||
|
......................1.....584.........+.......954...........299@..............*..............*......./../............................759..
|
||||||
|
........886..356.&784.......*........414.............................702.......128...+315.....302.....283....+.......309*231.......316......
|
||||||
|
..........$.............811....................*.............237....*.....................426.....713.......638.442............957*.........
|
||||||
|
....572...........491&..*......46............41.362.............*..361.700...883..478.......%.......*............./.....245.................
|
||||||
|
655*.......720...................*............................211.........*....*....*.........502.862.........*............+.......137......
|
||||||
|
.....302....*...............762..668.....446.............................552.....488.......................415.622.113.437........%.........
|
||||||
|
.190*.......362...581......#...............*...803.14.............&61.................$......972...479......................................
|
||||||
|
......760............=................478..627....*.......34*..........................51......=....%.....828............................531
|
||||||
|
........*.....764#...................*..............529............................356...........*.........-...................996*271..*...
|
||||||
|
220...58............721...508.872.634...........300*.........507.....290...........*..........356.780...36.....553.......................875
|
||||||
|
...............292.@......*............833.71...................*305.......382.....273................../.............998.........679.......
|
||||||
|
.........616..*......../..524.885.....-......*..527*538...794......../.....=....$........=....................812........*..........*.+297..
|
||||||
|
....579....*...629....666.................982...................467...468........292.....67........398...........*..283..225......550.......
|
||||||
|
241*.....415.....................832............................&...........&.................481..*.....444*826.....*......................
|
||||||
|
.....*..........................*.......$...920......600-..323#............930....591....357...*...653..............182.............816..575
|
||||||
|
..178.157...............186=..568.../...134....#....................292............*.....+....438..........+824...........859.814..#........
|
||||||
|
..........*209...462................606......%......405............*........*..334.623................*...................+...@.............
|
||||||
|
.......784......*............................632...@.......*....597........320.........219............210...........805.....................
|
||||||
|
595............664............&..%847.................$.749.434.....*894..........757...*..................$813......*.......&.%....278.191.
|
||||||
|
............................311.....................156.........244...............*....163....$...................706.....893..115...*......
|
||||||
|
.......451-...215...474.............610.687......................*..............535........424..........727*411.....................314.....
|
||||||
|
..............*................82.....*./....-.....482*307.....502.......595...................490..............590....*406.............309.
|
||||||
|
.............97.............................860...................................................*.......395...#...656.....................
|
||||||
|
......732........516......486......662*............*739...........=....579.............754......821..718...&..............609...753..103.62.
|
||||||
|
.908...*...........*.........*...........*824...197.....$......227...........956............331.......*......390.................*....*.....
|
||||||
|
....*...210......284.........821......148................644....................*....533.......*.....280....*.......-..........904.....748..
|
||||||
|
....368.......$.........542....................................*.411...........982...*....958.671........975.........610....................
|
||||||
|
...........820...358$....&..298........$....62...@....983..+..49.....254............784...*......................947.....................776
|
||||||
|
.....766.......................*......68.....#..477...$...428....209*.......*...265.......191......*........268...=....81...618#........=...
|
||||||
|
........*847.....661.474......624.........................................223...#....*...........74...................*.....................
|
||||||
|
.................*......%.574.....................976.475*618.@.....=..27.........975.280.....*......=...............13.....757-.......112..
|
||||||
|
.....721.........748.........*......392&.........../..........636.911......................359.......857.656....72-.....................*...
|
||||||
|
........*...................405..40...........87+..............................%89..............237.........#...................83....632...
|
||||||
|
........108...............................................172.54*.................................&...................%........*............
|
||||||
|
............736........3....727.....=.40...................*.........877.........=191.......................+...139.903........151.....%....
|
||||||
|
...725...56..%..410...$..@.....*...2...*....969.............207...../.......831........977.........158....946...*...................967.....
|
||||||
|
.....-....*......+......346..163......8........*..........@..................*.....509*.....458...*..............834...636@.....304......357
|
||||||
|
...-.......790......308........................453......396...........871..712..*.......625...%.426......777.423............................
|
||||||
|
..810.................%....355.421.....36.........................151...........935.774*........................#.......619.390.............
|
||||||
|
.............360*201..........*.......%...794...-..70......./24..*..........................765......*303.167.........*..&....-.........*...
|
||||||
|
.........*.......................273......%...198..*..............967................724=...*.....776........@.120.696......=.........37.301
|
||||||
|
......333.588.........205..........................572......................................673.........876..................893............
|
||||||
10
inputs/day03_test_input
Normal file
10
inputs/day03_test_input
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
467..114..
|
||||||
|
...*......
|
||||||
|
..35..633.
|
||||||
|
......#...
|
||||||
|
617*......
|
||||||
|
.....+.58.
|
||||||
|
..592.....
|
||||||
|
......755.
|
||||||
|
...$.*....
|
||||||
|
.664.598..
|
||||||
Reference in New Issue
Block a user