Browse Source

Solve 2020/5/first

master
Garrit Franke 3 years ago
parent
commit
3add2a2b77
  1. 3
      2020/5/go.mod
  2. 824
      2020/5/input.txt
  3. 79
      2020/5/main.go

3
2020/5/go.mod

@ -0,0 +1,3 @@
module 3
go 1.15

824
2020/5/input.txt

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

79
2020/5/main.go

@ -0,0 +1,79 @@
package main
import (
"fmt"
"io/ioutil"
"strings"
)
func main() {
data, err := ioutil.ReadFile("input.txt")
if err != nil {
fmt.Println("File reading error", err)
return
}
lines := strings.Split(string(data), "\n")
fmt.Println("First result:", first(lines))
fmt.Println("Second result:", second(lines))
}
func first(lines []string) interface{} {
highest := 0
for _, line := range lines {
rows := make([]int, 128)
for i := range rows {
rows[i] = i
}
for _, c := range line[0:7] {
if string(c) == "F" {
// Keep lower part
newSeats := make([]int, len(rows)/2)
newSeats = rows[0 : len(rows)/2]
rows = newSeats
} else {
// Keep upper part
newSeats := make([]int, len(rows)/2)
newSeats = rows[len(rows)/2 : len(rows)]
rows = newSeats
}
}
columns := make([]int, 8)
for i := range columns {
columns[i] = i
}
for _, c := range line[8:10] {
if string(c) == "L" {
// Keep lower part
newSeats := make([]int, len(columns)/2)
newSeats = columns[0 : len(columns)/2]
columns = newSeats
} else {
// Keep upper part
newSeats := make([]int, len(columns)/2)
newSeats = columns[len(columns)/2 : len(columns)]
columns = newSeats
}
}
row := rows[0]
column := columns[0]
id := row*8 + column
if id > highest {
highest = id
}
}
return highest
}
func second(lines []string) interface{} {
return 0
}
Loading…
Cancel
Save