This commit is contained in:
Karl Spickermann 2020-12-05 15:06:57 +01:00
parent c0922a2942
commit 21e6b80a5e
3 changed files with 845 additions and 8 deletions

View File

@ -1,22 +1,57 @@
package main package main
import ( import (
"AoC2020/helper"
"fmt" "fmt"
"os" "os"
"sort"
) )
func main() { func main() {
args := os.Args[1:] args := os.Args[1:]
input := args[0] input, err := helper.GetInput(args[0])
fmt.Println(input) if err != nil {
row, column := getRow(input) fmt.Println(err)
fmt.Printf("|%d|%d|\n", row, column) }
ids := getIds(input)
fmt.Println(day5(ids))
fmt.Println(day5Part2(ids))
} }
func getRow(boardingPass string) (int, int) { func day5(ids []int) int {
var max int
for _, id := range ids {
if id > max {
max = id
}
}
return max
}
func day5Part2(ids []int) int {
sort.Ints(ids)
for i := 1; i < len(ids) -1; i++ {
id := ids[i]
if id - ids[i-1] > 1 {
return id - 1
}
}
return 0
}
func getIds(boardingPasses []string) []int {
var ids []int
for _, boardingPass := range boardingPasses {
row, column := getSeat(boardingPass)
ids = append(ids, getId(row, column))
}
return ids
}
func getSeat(boardingPass string) (int, int) {
rowP1 := 0 rowP1 := 0
rowP2 := 127 rowP2 := 127
for _,char := range boardingPass[:7] { for _, char := range boardingPass[:7] {
if char == 'F' { if char == 'F' {
rowP2 = rowP2 - (rowP2-rowP1)/2 - 1 rowP2 = rowP2 - (rowP2-rowP1)/2 - 1
} }
@ -26,7 +61,7 @@ func getRow(boardingPass string) (int, int) {
} }
columnP1 := 0 columnP1 := 0
columnP2 := 7 columnP2 := 7
for _,char := range boardingPass[7:] { for _, char := range boardingPass[7:] {
if char == 'L' { if char == 'L' {
columnP2 = columnP2 - (columnP2-columnP1)/2 - 1 columnP2 = columnP2 - (columnP2-columnP1)/2 - 1
} }
@ -35,4 +70,8 @@ func getRow(boardingPass string) (int, int) {
} }
} }
return rowP1, columnP1 return rowP1, columnP1
} }
func getId(row int, column int) int {
return row*8 + column
}

798
day5/day5Input.txt Normal file
View File

@ -0,0 +1,798 @@
BBFFFFBRLL
BFBBBBFLLL
FBBBFBFLLR
BFBBBFBLRR
FBBFFBFLRR
FFBFFBFRRR
FBFBBBBLLL
BFFBFFFRLR
BFFBFFFRLL
BFBBFBFRRL
FBFFFFBLRR
BBFFBFBLLR
BBFBFFBRLR
BFBFBFFRLR
FBFFBFBRRL
BFFFFBFRLR
FFBBBBBRLR
BFFFBFBLLR
FBBBBBBRLL
FBBFBFBRRL
FBFBFBFLRL
FFBFBBFRLL
BFBFFBFRRL
FBBBBFBLLR
FFBBFBFLRR
BFBFBBFRRL
FBFFFBBLLR
FBBFFBFRRR
FFFBFBBLRL
FBBBBFBRRL
BFBFBBFLRL
BBFFBFBLRL
BBFFFFFLRL
BBFBBFFRLR
FFBFBBBRRL
FBFFFFFRLR
FFFBBFFLRR
BFFFBFFLRL
BFBFFFBRLR
BBFBFBFLRR
FBBBBFFRRR
FBFFFBFRLL
FBFFFFFLRL
BFFFFFBLRR
FFFBBBFLRL
FBFBBBFRLL
FFBFBBBLRR
FBFFFFFRLL
FFBFFFFLRR
BBFBFBBRRL
FFFBFBBLRR
BFFBFBBRRR
FFBBFFBLRL
BFBBBFFRRL
FFBBFFFRLL
FBFFBFBLRR
FBBFBBBRLL
FBBFFFBRLR
FBFFBFFLRL
FFFBFBBRRR
BBFFFBBRLL
BFBFBBBRRR
BBFFBFFLRR
FFBFFBBLLL
FFFBBBFLLL
FBBFBBBRRL
BBFBFBFLLR
BFBFFFFRLL
BFFBBFFRLR
BFBBFFFRLR
BBFFFBBRRL
BFBFFBFLRR
FBBFFFBRRR
FFBFFFBLLR
BFFFFBBRLR
BBFFBBFRRR
BFBBBFBLLL
FFBBBFBLRR
FFBFFBFLRL
FFFBBBBRLR
BFBFFFBRRR
BBFFBFFRRL
BFFBBFFLRR
FFFBFBBLLL
FBBBBBFLLL
BFBFFBFLLR
BBFBFBBRRR
FBFBBFBRLR
FBBFFBFRLL
BFBBFFBLRL
BFBBFFFRRL
FBFFBBFRLR
FBBFBBBLRL
FBFFBFFLLR
FFFBBFBRLR
FBBFFBBLLR
FFFBBBFRRL
BBFBBFFRRL
FFBBBFFRLR
BFFFFBBRRR
FBBBBBFRLR
BBFBFFBRRR
BFFBFBFRLL
BFBFFFFLRL
FBBBFFBRRR
FBBFBBFLLL
BFFFFBFLLR
BBFFFFBLLR
FFBFBFFLRR
FBBBFBBRRL
BFFFBBFLRL
FBFFFBFLLL
BBFFFFFRLR
FFFBBBFRLL
FFBBBFBRLL
BFFBFFBRLR
BBFFBBFLRR
FBBBBFBLRR
BFFBFFBLRL
FFBFFFFRLR
FBBBBBBRRL
FBBFFFBLLR
FBFFFFFLLR
FBBFBBFRLL
BFFBFFFRRL
FBBFFBFLLR
FFBBFFBLLR
FBBBFBBRLR
BFFBBBFLLR
FFBBFBFRRR
FFFBFBBRLL
FBFFFBBRRL
BFFFBBBLRL
BBFFBBBLLL
FBFBBFBLRL
BBFFFBBLRL
FBBBBFBLRL
BBFFBBFLLL
FBFBBFFRRR
BFBBFBFLRL
FBFFBBFLRL
BFBFBFBLRL
BFBBFBBLRL
FFFBBFBLLR
FFFBFBFRRL
FBBBFBFRRR
FBBBFFBLLR
BFFFBBFLRR
BFFFBFFLRR
BBFFFBFRRR
FFFBBFBLRR
BFFFFFFRRL
FBBFFFFLLR
BBFBFFFRRR
FBBBFFFRRR
BFBFFFFRLR
BFBBFFFRLL
FFBBBFBLLR
BFFBBBFLLL
FBFFFBFRRL
FFBFFFFRRR
FFBBBBFRRL
FFBFFFBLRR
FBBBBFBRRR
BBFFBFFLLL
FBBBBFFLLR
FBFFBBFLLL
BFBBBFBRLL
FBBFFFFRLL
FBBFBFBRLR
BFFBBFBLRR
FFBFBFBRLL
BBFFBBFRLL
FFBFBBFLLL
BFFBBFBLLL
FBFFFFFRRL
FBFFBFBLRL
FFBFFBFRLL
BFBBBBBRRR
FBFFBFBLLR
FFBFFFBLRL
FFBFFBBLRR
BFBFFBBRRL
FFBFBFBRLR
FFBFBFFLRL
BBFBBFFLRL
FFBFFBFLLR
FFFBBBBLRR
BFFBFBBRRL
FFBBFBBRLR
BFFBFBFLLR
FFBBFBBRRR
BBFFBBBRRR
BFFFBFFLLR
BFBBBFFRRR
BFBBFBBLLL
FFBBFBBLLL
FBFBFBBLLR
FFBBBFFLRR
FFBFFBFLLL
BFFBFFBLLL
FBFBBBFLLL
BBFBFBBRLL
FBFFBFBRRR
BBFBFFFRLL
BBFBFFFRRL
BFFFFBBLRL
BFBFFFFRRL
FFBFFBFRRL
FBBFBBFLRR
BFFFBBBRRL
FFBFFFBLLL
FFBBBBBLLR
BFBFBFBLRR
FFBBFFFLRL
FBBBBBBRRR
FBFBFFBLLL
FBFFBBBRRL
BFFBFFFRRR
BFBBFFBRRR
BBFBBFFLRR
BBFBFFBRRL
BBFFBBBLLR
FBFFFFBRLR
BBFFFFFRRR
BFBFFBFRLL
FBBBFBBRLL
FFBBFBFRLR
BFBFBFBRLR
FFBBBFFLLR
FBFFFFFLRR
FBFFBFFRLR
BFBBBBFRLR
FBFBBFBLRR
FBBBBFBRLR
BFBFFBBRLL
FFBBFBFLLL
FFBFBFBLLL
FFBFBFBRRR
BFBFBFBLLR
BFBBBBBRRL
FBBBBBFRRR
BBFBFFBLRL
FBBBBFFRLR
BBFFFFFLLR
FBBFFBBLRR
FBFFFFBRRR
BFFFBBFRLL
FBFBFFBLRR
BFBBFBBRRL
BFFFFBFRRL
FFBFFFBRRR
FFBFBBBRLL
BBFFFFFRRL
BFBBFBBLRR
FBBFBFFRRR
BFFBFFBLRR
BFFFBBFLLL
BFBFFFBRLL
BBFBBFBLLL
BFBFBFFRLL
FFFBBBFLLR
FBBBFFFRLL
BFBFFBFRRR
FFBBFFFRRR
BBFFFBBRRR
BFFFFBFLRR
BFFFFFFRRR
BBFFBFBLRR
FBBBBBBRLR
BBFFBFFLLR
BFFBBBBLLR
FBBBBFFLRR
FFBBBFFRRL
FBFBBFFLLL
BBFFBBBRLL
FBFFBFBLLL
BFFBFBBRLR
FBBFFFBLRL
FFBFBFFLLL
FBBBFBFLRL
FFFBBFFLRL
FBBBBFFRRL
BFBFBBBRRL
BFFFBBBLLR
FBFBFBBLRL
BFBBFFBLRR
BBFBFFFLRR
FBFFBBBLRR
FFBFFBBRLL
BFBFFFFLRR
BBFBFFBRLL
FBBBFBFRLL
BFBBBFFLRL
BFFBBBBRRL
BFFBBBBLRR
FFBBFBFRLL
FBFBFFFLLL
BFFFFFFLRL
BFBBBFBRRL
FFFBBBBRRL
FBFFFFBLRL
FBBBBBFRLL
FFBBFFFLRR
FBBFBBFLLR
BFBFBBFRLL
BFBFFFBLLR
BFBFBBBLRL
FFBFFFBRLR
BFFBBBFRRL
BFBBBBBLRR
FBFFFBBRLL
FBFBFBBRRR
FFFBFBBRLR
BFBFBBFLRR
FBFBFBBLLL
FFBBFFBRLL
FBBFBFBRRR
BFFFFFBRRL
FBBBFBBLLL
BBFBFFBLLL
FFBFBFBLLR
FFBBBFBRRL
FBFBFBFLLL
BFBFBBFRLR
FBBFBFFRLR
FFBFFBBRRR
BFFBFFBLLR
FBFFFBFLRL
FBFFFFFRRR
FFBBFBBRLL
FBFFBFFRLL
BBFFFBFLRR
BFBBBFFRLL
FBFBBBBLRL
FFFBBBBLLL
BBFFFFBRRR
FBBBBBBLLL
FFBFBFBLRL
BFFBFFBRRL
FFBBFBBLRR
BFBFFBFLLL
FBBBBFFRLL
FFFBBFBRLL
BFFFBFBLLL
BBFBBFBRLL
FFBFFBBLLR
BBFFFFBLRL
BBFBBBFLLR
BFBBFFBRLR
BFFFFBFLLL
BBFFBBFLLR
BBFBFFFLLL
FBBBFFFLLL
BFBBFBBRRR
FFBBBBFRRR
BBFBBFBRLR
BFBBFFFLLL
FFBFFFFLLR
FBFBFFBLLR
FBBBFFFLLR
BFBBBBFLRR
FBBFBFFLRR
FBFBBFBRRL
BFFBFFFLLL
FBBFBBFRRR
FBFFBBBRLL
FBFBBBBRRL
FFFBBBFRRR
FBFBFFBRRL
FFBBFBFLLR
BFBFBBBLLL
FFBFFBFLRR
BFBFBBFRRR
FBBBBBBLLR
BFFBFBFRRR
FBFFFBFRRR
BBFFFBFLLL
FBBFFBBRRR
BFBFBFBLLL
BBFFBBBLRR
FFBFFFFRRL
FFBFBBFLLR
FFFBBBFRLR
FFFBBFBLLL
FBFBBFFLLR
FBFBFBFRRR
BFBBFFFRRR
BFBFFBBRRR
FBFBBFFRLR
FFBFBBFRLR
BFFBBFFRRR
BFBFBBFLLL
FFFBBFBRRR
BFFBBFFRLL
FFBFFFFLLL
FFBBBFFRLL
BBFBBFBRRL
BBFBFFBLRR
FFBFFBBRRL
FBBFBBFRRL
BBFFFFBLLL
BFBBFFBRLL
FFBFBFFRLL
BFBBFFFLLR
FBBFFBBRLR
BFBFFBFLRL
BFBBFBBRLL
FFBBBFFRRR
FBFBBFFLRL
BFBBFBFRLR
FFBBFFBRRL
FBFFBBFLLR
FBFBBBFLLR
BFFFBBFRRL
FFFBBBBRRR
BFFFBBBRRR
FBBFBFFRRL
BBFFFFBRRL
BBFFFBBLLR
BFBBFBFRRR
BFFFFBBRRL
FBBFBBFLRL
FBBFBBBRLR
FBFBFFFLRL
BFFBFBFRRL
FBFBBBFLRL
BFBBBBBLRL
FFBFFFBRLL
BFFBBFBLRL
FBFBFBFRLR
BFFBBFFLLL
BFBBBBBLLL
FFBFBBFLRR
BBFBFBFRRR
FFFBBFFRRR
BFFFBFFRRL
BBFBFFFRLR
BBFBFFFLLR
BFFFFFFLRR
FBBFBBFRLR
FFBBBFFLRL
FBFBFFFRLR
FFBFBFFLLR
BFBFFBBLRR
BFFBBBFRLL
FBBFFBBLRL
BFBBFFBLLR
FBFFBFFRRR
BFFBBBFRLR
BFBFBBBLLR
BFFFFBBLLR
BFFBFBFLLL
BFBBFFFLRR
BFFFFFFRLR
BBFFBFFLRL
BFBFBFFLLR
BBFFFFFLRR
FFBFBBFLRL
FBFBFFBRRR
FFBBBBFRLR
BBFBBBFLLL
BFFFFBBRLL
FBFBBBFRRR
BFFBFBFRLR
FFFBBFFLLR
FBBFBFFLLL
FFFBFBBRRL
BFBBBBFLRL
FFBFFBFRLR
FBFFBFBRLL
FBBBFBFLRR
BBFFBBFRLR
FBBBBBFLRR
FBFFFFBRLL
BFFBFFFLRL
BFBFFFFLLL
BBFFBFBRLR
BFBBBFBLLR
FBBFFBBRLL
FBFBFBFRLL
BBFBFBBLRL
BFFBFBBLRL
FFBBBFBLRL
FFBBFBBLLR
BFFBFBFLRR
FBBBFBFRRL
BFFBBBFLRL
BFBBFBBLLR
BFBFFFBLRR
FBFFBBBLRL
FBFFBFFLLL
BBFFBFFRRR
BFFBFBBRLL
BFFFBFFRRR
BFFBBBBLRL
FBBFFBFRLR
FBFFBFFRRL
FBFFFBBRRR
BBFFFFBLRR
FBBBFFFLRL
FFBBBBFLRL
BFFFBFFLLL
BFBBBFFRLR
FFBFBBFRRL
FBFBBBFLRR
FFFBBBFLRR
BFFFBFBRLR
FBBBFBBLRR
FFBBBFFLLL
FFFBFBFRLR
FBBFFFBRLL
FBBFBBBRRR
BFBFFFFRRR
BFBBBFBLRL
BBFFFBBLRR
BFBFFBBLLR
BFBBFBFLLR
BBFFBBBRRL
FBBFFFFLLL
BBFBFFBLLR
BFBBBBBLLR
FFBFFBBRLR
FFBBBFBRLR
FBFBBBBLRR
FBBFBFBLRR
BBFFBBFRRL
BBFFBFFRLL
FBBBFFBLRR
BFFFBFBRRR
BFFBFFFLRR
FFBBFBBRRL
FBFBBBBRRR
BBFBBFFLLL
FBFFBBBLLL
FBBFFFBLRR
BFBBFFBLLL
FBFFFFBLLL
BFBFBBBLRR
BFFFFFBLLR
BFFBBFBLLR
FBFFBFFLRR
FBBFBBBLLR
FFBBBBBRLL
BFFFBBFLLR
FFBFBBBLRL
FBFBBBFRRL
BFFFFBFLRL
FBBFFBFRRL
FFFBBFBRRL
FFBBBBBRRL
BBFFFBFLRL
FBBFFFFLRR
BFBBBBFRLL
BFFBFFBRRR
FFBBFFFLLL
BFFBBBBRLR
BFBBFFFLRL
BFBFFBBLRL
BBFFFBFRLR
FBFBFBFLLR
BBFFFBBRLR
FBBBFFBLLL
FBBBFFFRRL
BFFFFFFRLL
FFBFBFFRRR
BFFFBFBRLL
FBBBFFFRLR
BFBBBFFLLL
FBBFBFBLLL
FFBBFFFLLR
BFFFBBFRLR
BBFFFBFRLL
FBBBBBBLRL
BFBFBFBRLL
FBBBBBFRRL
BBFBFFFLRL
BFBBBBFRRR
BFBFFFBLRL
FFBFBFBRRL
BFBFBFBRRR
FFBFFFFRLL
BBFBBFFLLR
FFBFBBBLLR
BBFBBBFLRL
FBFBBBBRLL
FFBBBBFLRR
FFBFFBBLRL
BBFFBBBRLR
BFBBFBFLLL
FBFBFFBLRL
BFFFFFBLLL
FBFFBFBRLR
FBBBBFBLLL
FBBFFBFLRL
BFFFBBBLLL
FBBFBFFLRL
FFFBBFFLLL
BFBFBFFRRL
BFFFFFBRLL
BFFBFBFLRL
BFFBBFBRRL
BFBBFFBRRL
FFFBBBBLRL
FFBFBBBRRR
FBFBBFBRRR
FFBBBBFLLL
BBFFBFBRLL
FBFFBBFRLL
FBFBFFFLLR
BFFFFBFRRR
FFBBBFBLLL
FBBBFFBLRL
BFFFBBBLRR
FFFBFBFRRR
FBFFFBBRLR
FBFBFFFLRR
FBBBFBBLRL
FBBBFBBRRR
BBFBFBBLRR
BFFBBBFLRR
BFFFFFFLLR
BBFBFBFRLL
BFFBFBBLLL
FFBBBBFLLR
BFFFFBBLRR
FBFBFFFRLL
BFBFFFBRRL
BBFBFBBLLR
FFFBFBBLLR
FBFFBBBRRR
FBBFBFFLLR
FBFBFBBRLL
BFFBBBBRRR
BFFBFFFLLR
BFBFBFBRRL
BFBBBBFLLR
FBBFBFBLLR
BFFFFFBRLR
FBFFFBBLLL
BBFFFFFLLL
FFBBBBBLRR
FFBBFBBLRL
BBFFFFFRLL
FBFBBFFRRL
FFBFBBBLLL
BFFFBBBRLR
FBBBFBFRLR
FBBFFFFLRL
FFBBFFBRRR
FBFBFBFLRR
BFBFBBBRLL
BFBFBFFLLL
FBFFBBBLLR
BFFFBFBLRL
FBBFFFFRRR
FBBBBBFLLR
BFFFFBBLLL
FBBFBFBLRL
BFFFBBFRRR
BBFFBFBRRR
BBFFBFBRRL
FFFBBBBRLL
BBFFBBBLRL
BFBBFBBRLR
BBFBBFBLLR
BFBBFBFLRR
FBFFFFBRRL
BFFBFBBLRR
BBFFBFBLLL
FBBBFBBLLR
FBFBBFBLLL
BBFBFBFRLR
BFFBBBBLLL
BFFBFFBRLL
BBFBBFBLRR
FBFFBBFLRR
BBFFBFFRLR
BFFFBFFRLR
FBFBBFFRLL
BFFBBBFRRR
FBBBFBFLLL
BBFBBBFLRR
FBBFFBFLLL
BBFBBFBLRL
FBFFFBBLRL
FBFBBFBRLL
BFBBBBFRRL
BFFFBFFRLL
BFBFBBBRLR
FFBFFFFLRL
FFBFFFBRRL
FBFFBBFRRR
BBFFFFBRLR
BFFFBFBLRR
BBFFBBFLRL
FFBBFFFRRL
FBFBFBBRLR
FBBFBFFRLL
FBBBFFBRLL
FBBFBBBLLL
FBBFFBBRRL
BFBFBBFLLR
FFBBFFBLRR
FFBBBBBLLL
BBFFFBFLLR
FBFBBBBRLR
BFBFBFFLRL
FFBBBBBRRR
BFBFFBFRLR
FBBBBFBRLL
BFBBBBBRLL
BFBBBBBRLR
FBBBBFFLLL
FBBFFFBLLL
BBFBFBFLLL
BFFFFFBLRL
FBBFBFBRLL
BBFBFBBRLR
BFFBFBBLLR
FFBBFBFLRL
FBFBBBFRLR
FBBBFFBRLR
FBFFFBFLRR
BFBFBFFLRR
BFFFFFBRRR
BFFBBFBRLL
FBFBFBFRRL
BBFBBFFRRR
FBBFBBBLRR
FBFFBBBRLR
BBFBFBBLLL
FFBFBBFRRR
FBFBBFBLLR
BFBFBFFRRR
BBFBBFBRRR
FFBFBBBRLR
FBFBFBBRRL
BFBFFFBLLL
FBFBFFBRLL
FBFFFBFRLR
FBFFFBBLRR
FBBFFFFRLR
BFBBFBFRLL
FBFBFBBLRR
FFBBBFBRRR
FBBFFFFRRL
FBFBBFFLRR
FBBBFFBRRL
FBFFFBFLLR
FFBFBFFRLR
FBBFFBBLLL
FFFBBFFRLR
BFFFFFFLLL
FFFBBBBLLR
FFBFBFFRRL
BBFBBFFRLL
FFFBBFFRLL
BBFFFBFRRL
FFBBFFBLLL
FBFFBBFRRL
BFBBBFBRLR
BFBFFBBRLR
FBFBFFFRRR
BFBBBFFLLR
FBFBFFFRRL
BFFBBFFLLR
FBFBBBBLLR
FFBBFFBRLR
FBFFFFFLLL
BBFBFBFRRL
FBBBBFFLRL
BFBBBFBRRR
BFFBBFFLRL
BFFBBFFRRL
BBFBFBFLRL
FBBFFFBRRL
BFFFBFBRRL
FBFFFFBLLR
FFBBFBFRRL
BFFBBBBRLL
BFBFFFFLLR
FFBBFFFRLR
BFBFFBBLLL
BFFBBFBRRR
BFFFBBBRLL
FFFBBFBLRL
FFBFBFBLRR
FFFBBFFRRL
FFBBBBBLRL
BFBBBFFLRR
FBBBBBFLRL
FBBBFFFLRR
BFFBBFBRLR
BBFFFBBLLL
FBBBBBBLRR
FBFBFFBRLR
FFBBBBFRLL

Binary file not shown.