diff --git a/main.go b/main.go index 28bf10e..f9a3bd9 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "fmt" - "github.com/thatguygriff/aoc2020/twentythree" + "github.com/thatguygriff/aoc2020/twentyfour" ) func main() { @@ -96,6 +96,9 @@ func main() { // fmt.Println(twentytwo.PartTwo()) // Day 23 - fmt.Println(twentythree.PartOne()) - fmt.Println(twentythree.PartTwo()) + // fmt.Println(twentythree.PartOne()) + // fmt.Println(twentythree.PartTwo()) + + // Day 24 + fmt.Println(twentyfour.PartOne()) } diff --git a/twentyfour/day_twentyfour.go b/twentyfour/day_twentyfour.go new file mode 100644 index 0000000..6ac042a --- /dev/null +++ b/twentyfour/day_twentyfour.go @@ -0,0 +1,95 @@ +package twentyfour + +import ( + "bufio" + "fmt" + "os" +) + +type lobby struct { + instructions []string + tiles map[string]bool +} + +func (l *lobby) load(filename string) error { + file, err := os.Open(filename) + if err != nil { + return err + } + defer file.Close() + + l.tiles = map[string]bool{} + scanner := bufio.NewScanner(file) + for scanner.Scan() { + l.instructions = append(l.instructions, scanner.Text()) + } + + return nil +} + +func (l *lobby) layout() { + for _, instruction := range l.instructions { + north := false + south := false + x, y, z := 0, 0, 0 + for i := 0; i < len(instruction); i++ { + switch string(instruction[i]) { + case "e": + if north { + x++ + z-- + north = false + } else if south { + z++ + y-- + south = false + } else { + x++ + y-- + } + case "w": + if north { + y++ + z-- + north = false + } else if south { + z++ + x-- + south = false + } else { + x-- + y++ + } + case "n": + north = true + case "s": + south = true + } + } + tileID := fmt.Sprintf("%d,%d,%d", x, y, z) + l.tiles[tileID] = !l.tiles[tileID] + } +} + +func (l *lobby) countTiles() (black, white int) { + for _, t := range l.tiles { + if t { + black++ + } else { + white++ + } + } + + return black, white +} + +// PartOne How many tiles are left black +func PartOne() string { + l := lobby{} + l.load("twentyfour/input.txt") + + l.layout() + black, _ := l.countTiles() + + return fmt.Sprintf("There are %d black tiles", black) +} diff --git a/twentyfour/day_twentyfour_test.go b/twentyfour/day_twentyfour_test.go new file mode 100644 index 0000000..5d5e21f --- /dev/null +++ b/twentyfour/day_twentyfour_test.go @@ -0,0 +1,40 @@ +package twentyfour + +import "testing" + +func Test_load_instructions(t *testing.T) { + l := lobby{} + l.load("sample.txt") + + if len(l.instructions) != 20 { + t.Logf("Expected 20 instructions, found %d", len(l.instructions)) + t.Fail() + } +} + +func Test_layout_tiles(t *testing.T) { + l := lobby{} + l.load("sample.txt") + + if len(l.instructions) != 20 { + t.Logf("Expected 20 instructions, found %d", len(l.instructions)) + t.Fail() + } + + l.layout() + black, white := l.countTiles() + if black + white != 15 { + t.Logf("Expected 15 tiles, got %d", black+white) + t.Fail() + } + + if black != 10 { + t.Logf("Expected 10 black tiles, got %d", black) + t.Fail() + } + + if white != 5 { + t.Logf("Expected 5 white tiles, got %d", white) + t.Fail() + } +} diff --git a/twentyfour/input.txt b/twentyfour/input.txt new file mode 100644 index 0000000..9ee4407 --- /dev/null +++ b/twentyfour/input.txt @@ -0,0 +1,556 @@ +seseseseseswsesesenwseseseswenweeese +nwneneseswneneweeneneeeeneeneene +swswseswswswswswseseeswswswswseswsesww +nwsenwnenenwnwnwewnwnwnwnwnwnwwnwnwnw +sesewseesesenwnewewwnewseeseseswsene +eneneneeewswnenewsenenwnwnenewnene +neneneswseseeeswsw +newneeeeneeeeeeeene +wnwwwswwwnwewnwwsewenwwwwnww +swewswswseseseswseewseseseneswnewwsesw +nwswnwsenwnenwwnwnwnwwnwwnwnwnwwnwnwnw +swwwwwnewwwwswswwwwwwseswsww +wwwewwwwswwwwwwwwwswsw +wnwnwnwnwnwnewwnwwnwnwnwsewswwnwww +sweswnwwwnwwnwnwnwseenwnwnwnwnenwnwnw +nenwwwsewnenwwwwwwnwwnwwswnwnww +eeneeesweeesenwneneeeenweeeene +enwwswnwwnwnweswnwnwseswnwnwnwsewnenenw +nwnwnwnwnwswnwnwnwnwnwnwnwnwnesenwnwnwnenw +nwswwsewswwwwww +sesweseeneeswnweeseweseswsesenwnw +sewswwnwneeswswnewswswswwwwnwswwse +enwnwswnwnenwnenwswneneneneneswnwsewnenwnw +nwnenwnwsenwnwnwnwnwwwnwnwnwnwnwnwnwnw +seesesesesesewsesesesesesesesesesesesene +swneneseswsewswwsenesesewswwnewswseswne +swnwswsenesewneswswnwswsewewswseswnene +wwswwseseswwnwnww +esewnwseseswnweseesenwswseesesesee +seeneneneseenenwsweeeeeeeewe +seseswseswsewseseswsweseswseseswswsese +swneeneeneseneweesewne +nenenenenenenenenenenwnenwsenenenenenene +neneneswneneneneneneswnenenenwenwnenene +wewwewwwnwswswnwewwwwwwwsw +seseseenwsweeeesenweneeeseewse +neneneneenenenenwnenenenewnewnwnwnesenw +nwnwnwwewwseswnesewnwswwseswenene +wwswswswswswwswswsweswswsw +nwnewnwwsenwnwnwnwwnwwnwsenwwwnwwsenw +swweeenwseeseseeenwweseeseseeese +nwnwnwnenwnwnenwwnwnwnwnwnwnwnwnwnwnwe +nwnwnwnwnenwnenenenwenwnwnwnwswnwswnwnw +wwwswwewwwwwwwwwnwwwwwsw +neneneneneeneeneenenenesw +nwswneeneeneseweneeweneneswnwswneswse +seeswwenwneeneeeneeswneeswsenwe +weewwwwwswwwnewwwwnwwwsww +wneseewneweswneneneneneneeswnenesene +swnwenwenwseswneswewnwwnwwsenwnwe +wsewnenenenenenenenenenwnesesenenenene +nenwneneneeneneneswnenenewneenenenenene +eswswswwswnwwswswsweswnwswswswwswe +seeseseseseeeswsewnwneseseesesesese +eseenwseseesweeeeseeweeeesee +eenewneeneneeneeneeswneneneswsene +nwnwsenwnenwnwnwnwnwnwswnwnwnenwnwnwnwnwne +wnwwnweeseswnwnwsweesenewnwnwnwnw +nesweneenenwnwneneswneneseewene +nenenenenenenenenenenwsenenenwneneneeswnenw +swswsweswseswswseswseswswswnwnwsenwswsee +wwnewwwwwsewwewsewnwswwnwnew +swswswseswswswswswseswswsewsweswseswsw +eeneenesweeeeeeeeeneenweee +nwwwwwwnewnwwwwswwww +nenwnwneeneswnwnwnwswnenenwnewswnwswnw +eseseenwsesesesesewsesesesesesesesesese +wwnwwnwwnwenwwnwnwnwnwnwnwsenwswnw +sesewseseeeneewesenwseeseenesee +seeesewsesewwneeeeeseeeeenenw +wswswswswswswwswwwswewwwswwwsw +eswwswswwwwswswseswwwnewwwwwwsw +weseswseeswneseswwsewswseeewnenwsw +nwnwnwnwnwnwenenwnwenwnenwnwenwnwwswsw +senwnenweesesewwesweeeseneneew +nwwnenenenwneeneneneswneneswwsewseene +wswwwewswwewsw +eswneeeeeeeeswneeneeeneenwe +nwseeswnwsesweseseseseseeneswneseseese +eeseesenweeee +senwnwsenwnenwnwnewnenwnwsenenwnwnwswnw +neenwsesewnwnewnwnenesenenwnewseswnene +eweeenwesweeeeeeeseeswneee +eeeswnweeeeneeeeeweeeeee +nwnwnenenenwneneswnwnwnenenenwnenwnesenw +eeweeeeeseseeeeeeeeeee +wswswwsenwwnwneewesewswwnewnew +nenesenesenwnenenwswwnwnenenenenenenee +nenenwenwnwnwnwswnenwneneswnwne +wwswswswwswwwneswwnewww +enwnenwnwwnwnwnweswnwnwnwnwnwswnwnwnene +seseswswswseseswseseseswsesenwseswseswe +newnenwseneeeneneswnenenenenenenwseenee +eeswseeswsesenweeenwsewsee +wnwnwenwnwwnwnwnwwnwnwwnwnwnwwnwnw +nwnwnwnwnenwnwnwnwnwnwewnwnwsenw +swswnwsweswswswswswswswswswseswswswsw +swswwswswswwswswswswswwswwswswweesw +swswswesweswnwswwsenwseswswewnwswswswne +wwwnwwwwewwwwwwwwwwew +wwnwwwwwnwwwwwnwwnwsewnenwnw +nwnwnenwnwnwenwnwswesenwnwswseneneww +newseseesewseweenesesweneewswe +wenwwewswnwwnwnwwwnwenenwsw +neeeeneneneeeenwneswswneswneenesw +seeseseseseswseseeseneseseswnwnwsesewese +eeeeweneeenweenenweeesesesesw +eswnenwneeneenesenenwneseneenwswnenenew +nenwnwwnwnwnwnwenwnwnwnwswnwneneneenw +nwnwnwnwnwnenwnwneenenwnwnwwnenwnenenw +eeeseeeeeeeseweeeewsee +wnwwnwwnwwwwwwnwsenenwnwwwnwww +eseseneesesewnwesweneneswsenweewsw +nwnwnwenwnwwnwnwnwswnweenwnwnwnwnwnww +nenenenwswnenwnenenenwneenenenesenenenene +neeswnwnenenenenenenwneneneneneneeneswne +swseenenwneeneeeeseneenwnenenenee +neswnwnenenenenwnwnwseewnwnenwnwnenene +senwseswsweseseseseswsesenwnwseseneseenw +eneeneneeneswswewneneeswneenwnenw +neenwwneswswsesenesewwsesesesenwwe +seseneseewseseeesewseseseswnwsesene +sesenesesesesesewswseeeseseseeesese +wnenenwnenesenenenenenwneneewnenwsesenw +sesesesesesesenwseseneseseseseseswseswsese +sweswneswswswswswswswswswswswswwswwswsw +nwsweswnwnweseneswsesenewnenwswneenew +neeneneenesweeseenenenewneesweeene +neneeenewwseewneseeeseneenwee +seseseseseeeeeeeseweeseseese +enwswneeeneeseneeneeweeeeenesew +eswswswswswswwnwseseswseeswnwseswswsw +nwewswswwswswswnesewseswswnesweswsee +nwnwenwnwwsenwnwnwnenwnenenwnenwnwnwnwsw +eneneneneneneenenewneneneeneneneene +nwnwnenwnenenwnenwsenwnwnwnwnenenewnwswnenw +wwwnwwswnenewswwseswwwnenewsew +ewwswneenenenwswwnwewenenenewese +nwenwnwnwneseseswnwnwnwswswwneswnwnenwne +nenwenwsenwnwneswnwswnenenwnewnwnwenwnw +wnwnwenwnwwnwnweneswnwnwnwswnwnwnwnwnw +eneeswneenewneenenenewsenwnenee +enwnwnwnwnwnesenwnewnwne +nwwnwwnwnweenwsenenwwwsenwwwswne +wwwnwsweewneswweeswweswsewnw +swseeswwneswseswwswseneswnwswswswwswswsw +enewenweswsesesesewswneeenwwwse +senwnenwnwnwnwnwnwnwnwnwnwnwnwnwnwwnwnw +wsewnenesenwenwswnwnenwswnwnwnwwenwe +wnwwnewwnewwnwnwsewnwnwsweswww +seswswseseseeswnwnwsenweeswnwseswsesese +nwnwwnwneseweenenwnwnenwswneeswseswne +swnwnwswswswswswswswseswseeseseswswsese +nenwnenenwsenenenewnwnwnwnwnenenesenenw +swnwwwwesewweewnwwesenwnwnwnw +swwswseneswwneswsenenenwswneseswswsenenesw +nenenenenenwenesenenenenewnenwnwnenenwne +swnwwswwwswswwswwswwwwseeswsww +eseseseeseseseweseseseseseweee +swsweswswswseswweswnenwswenwwswswne +nwnwnwnwnwnwnesenwnwnwnenenwnenenwnwnene +neswwwwwnewwewseweswwwswww +seseswseneseeseswnwseswseswseswseseswse +sweeeeeweseeeeenwenw +swnwnweewwnwsenwsenwwnewswnenwnwsw +eweeeneenwwseneneswnesewnwseesenwne +swswswswnewwwswswsewwwnwwswweswsw +nwnesenenwewsenwwneseseneswnenenesenw +ewnwenenwseseeneweeesewsw +eeeenwenenweeenweseeneseeseee +esenwseesesesesesweee +sesesenwseswnwswsenwseseenesewsewnwnw +wnwwwwwwnwswwwwewwwwwwww +nwnwsenwnwnwnewnwnwnwnwnwnwwenwnwnwnw +wsewwswwneswwswswwnewswswwwnese +nwnwnwnenenenwnwnwenwwnenwnwnwnwnenenw +nwnwnwnwewnwwnwnwwnwnwwnwnwnwenwnw +wswwswswsewnwswwswsewwwswwswnew +eeewseeeeseneeweeeeeeee +nenenenenenenenenenenenenenenenenenenesw +nwnwnwnwenwnwnwnwneswnwnwnwseenwswwnw +senenwswnenenenwnenewnesene +seswseseeneseneseseeseseseeseseswese +nenwswnwnwsenenwsenwnwsenwnwneswnwwnwenwnw +eeweseneseseseseseeeseeese +swewnwwswwswswwwwwwnwwsewww +swneneneneneeswwnewswseneswneneenenenene +eenwneeneneeseswseneenwnenenenene +sewswsweswseswseenwsenenesese +seswseseswseseseseseseswseseseswseseenw +sweeeeeeeneeseeeseseeee +seweneeswnwneeeeneneenewnesenwne +swwswewwnwnwwnwwewwwwwwnwnwwnw +neneneneneneneswneneneneneneneeneneswnene +wwwnweesenwnewnwswnwnwnwwnwnwnwww +wswnwnwnenwweswewwswswwsewswwsw +sewseseseeeeneseeeeeeeeesee +senenewneseenwneneneneeswnenenwnewnene +neneneeeseneenwneneenwneseneswneeeww +swswswswswswswswswwswswswswsweswswsesw +neswwwswwswwwwewswswewsewswwnw +neneneesweeneneneneneewnenenwnenenene +eswswnenenewneseneneeswnewneesenenene +nwnwnwnwnwnwnwwnwwwnwnwnwswnwwswenwne +seeseesenwswnwesweseneneeeseeeee +eeeeneneneneeneneewneeeseene +seswwswswswswsweswwnwsweswswswswnenw +wwwwneseswwwnwswsewswwswwwswsww +wswnwswswswsesewwwwwswwswwneww +wseswswewswswswswseswewswseswswesw +swnweswwwwswswswswwswww +wswwswwswwswswwnewwsenwwwwswew +neseneenewswwesweneseese +wwwsenwswsewnwnwesweenwwswwnwww +wswnewswsewnwswwswswnewswswswswswwsew +swwswwneseswswswww +neneswnweseenwswneenenweeeeneenee +eenenenwseewseesewswseeeeseeew +enewnwwnwwnwwseneswwwwswnwwsenwnwne +eweseewseeseneneseeseeseenwwsese +neswwswenwwwwwnesewswneswwswsesw +nwnenwnwnenwnwnwnwnwnwnwnwswenenwnenwnw +swnenwnwnenwnenenwnwnwnwnwnwneewsenwnenwne +nwneenwnwnenwnwnwnenwnenwnwnwnewnw +swswseswswswswswswswnwseswswswneswsenwsesw +nwnwnwnenwnenenwnwnwnwnenwswnenwnwnwnenw +nwwnenwnwnwnenwnwsenwnwnwnenenwnwnenwne +neeseewwswseenenw +swwseswswswneseswswswesesenwswneswsesw +newnwwwnwnwwwnwsenwwnwwwesenwnwnw +eswseseswwswseneswsesesesesesenwsesesese +eeeeeeeeeeenweeeeseeee +eesenesewseseeseeeseseeeeseesese +wnwnwnwnwnwenwswnwwnwnwnwnwwwswnwnwnew +nenenwnwnwwesesenwwswnwnewswswswenw +eeseeenwnwswswewnwsweneeenwsenee +eseenwsesweseweeseeseseeswsesene +sesewseneseswsesesesesesesese +nwnenwnwnwnenwswnwenwnewnwnenenwswneene +wwwwwswwwnwwwwwewwwwwww +eseesewseeeseseseeseesesesenesesee +swswewwewwewsw +swseswnwswseeswseswswswswswswswseseswswse +wnwnwwwewwwwwwwswnwnwsenenwww +swswswswswswswseseneswswswswswswswswsww +wenwwewwwswsweswswsenwwswwneew +nwnwneeneswneneneewneswnwneneswnwswnw +wsewswnwnwnwwenwnwnwnwnwnwnwewnwnesw +swswswswswneseswswswswnenwse +eswnenenwseswseseswseseseswseswneseswnw +enenwnwsenwnwnwwneswnenwnwnwnwnwnwenw +sewsesenesewewseseseseseneweseseewse +sesewseswseseswseseseseseswswswseswsenese +neesenenenwneneenenesewneeneeewnw +senenenesenenewwneneenwneneneeenenene +wwwwwnwwwwwnewsewwwwwww +swseswwswswswnwswneene +sesesesesenenwsewseswnesenwwsenenwsewne +nwwwwwwewwww +neneeneeeeswnenenesenwneeneneenenew +eweeeeeeeseneeeeeeewee +newnwnenwnwwwwwswwswwwnwwnwwwnw +nenwnwenwnenwnenenwnenenwnwsenwnwnenew +wswseenenwnwwneswnenwwnenenenenenee +swswnwsweseseswswswseseswswswseswswseenw +seseswswnwseseswwnwsweseseseseseeseswe +nwnwnwwwnwwnwwwnewwwnwsesewnwwnw +swswseweeswswswsewswswnwwwnwenenwsww +eswswesesesesenweseseseseneneseewsenese +wnwenwwwwnewwwwnwnwwwwsw +seeeenwswwsenwsesenwswneswswwwswe +nenesewwwswswswnwswswnewswsw +neseneseswseeseseewswwsewswsenwswswsw +eeseeeseweeneeeeeeeeesesee +sesweenenenweeseeswesweseeeneww +nwnwnenwnenwwswswnwwwse +nenenwswneneesewenenwesenwnenenesene +eesewnwseeneeeeeneseesewwnwe +swenesesenesenenewwnwnenenenesw +swswswswswswswswnwswswswswswswsweswswswsw +eseneswseseseseseseswswsesenw +swsweswswsesenwswswnewswswswswswswnwswsw +wwwneswwswwwneswwsewwswwwwsw +nwnwnwwnwnwnwwnwnwnwnwnwnwenwnwnwwnw +wswwswwwewswswswneswswwwswwwwsw +nenwnenwneenwnenwnenwnwswwnenenwnwnenwnw +seeseseeseeseseweeewnenesw +senwnwnwnwnwnwnenwnwnwnwnwnwnwwwnwsenw +enenesenenwwesewee +swnwswnwneseenenenwswnwnewnenwwnwneesene +swswswseswswswswswswswswswseswswwseesw +swwswnwwwwwwswwewe +wswenewnesesenwswseswseeneneenenwnenwe +wwnwswswewswewww +seseesesesesewsenwseneseseeseseeeww +swseswswswswswseswswseswseswsenwseswswse +wnwwwwwsenwnwweswnwnwsenwewwsw +nenwnwewswnenenenenwnwswnwnwnenenenenwnw +wnwwnwnwnwenwseswnwswenwwwnwwnww +neenwnwswnwneneneenenenwsewneswnwnenwnw +wwswswwwwwwwswwwwnewswnewww +wsenwswsweswewneenweswsenwneneese +swseswnwseseswseseswseswswswseseswseenwse +seswswseneswsesesweseseswseswneswnwwswsese +nenwenwwnwneswnwenwnwnw +neswewnwnwswneenwsenwswnwnenenwnwenenw +eswswnwnwnenwwnwnwswnwnwwnenwnwnwsenw +nwnwnenenwnwnenwswnwnwnwnwnwnenwnwnw +wwwswwwswwwwweneeeswwwwne +eeeenenwneneneneeneeswneeneweee +nwnwnwnwsenwswnwnwnwnwnenwnwnwnwnwnenwnww +swsesesesesesesesesewesesewseseseseseswne +seseeeseeeweeeeeesesewsesee +seswneseswneswsenwenewwsenwsenweswswene +swswswswswswswswswswswswsweeswnwsesww +swwswswswswneswswwswswswwswwwsw +swnwseswswswswswwswswwswswswswswswswsw +nwnenwnenenwswneneneneswnwneenenwnwnenwnene +nwnwwnwnwwsenenwnwnwnwnwwnwwsenwsenw +seseeesesesesesesesenewseeewsewse +swswswenwneneeeenwneenwnwsenene +seseswsewesesesesewseswsenweenwsese +eweeeeesweeenweeeeseee +eseswseswsenwswseswseswswswsw +ewnwwnewnwwnewnwswswnwsenwwnwwwwe +esesenweseseseseswseseseneseseesesenwse +wsweswswwweswwwswswswwwewwswnw +nwnenwnwnwneenenenwnwwnwnwnwnenwwene +seewsweesenwnwwsee +swneswwwswnwenwewswnenwwswseewswswe +eeeeeeeeeeeeseeenwee +sesweeeeseenwenw +wswswswwswwnewseenwswnewswswswswwsw +seswseswneswnwnenwse +senenwswswsenwswseswsenwneeseseswseswse +nwswswswseswneswswseswseseseeswsenesesw +weweswwwswnwwwseswwwnewwnwwsw +neeneeneswneeeeeeneneeneenweene +nwnesenesenwseesewseseseseswesenwew +sesesesesenwnweswweseeeswseneeese +wnwwwewswwwwswewwswwwwnwwww +wswwwswswewwnwwswswswwwswwswww +eeeeeseseeeeneeweeseeenwee +seeeeseeeseeeeeeesesesenwee +seesesenwwswseseneseseswseseseseseseswsese +newwwwswwswwwswwswweswswswsww +nenwnwswnwnwnwnenwnwnwnenenenenwnwnenenw +wwsewwsenwwnenewwnewsenww +swswswswswswswswseseswneseswswswswseswenwnw +seesenwnenewseseswswswwnwseseesesesese +enweseneeneeseeneeeseeweewwee +eeweeeeeeesesenewnwseseesesese +wswsenesesenesesewseenwswswnenwswnwenenw +eswseswesesenwewswwnewnenweswsese +nenwnwneswnwnwnwnenenwnenenwnwnwnwswnwne +nwnenesenenwwneewnwnwnwwnwnwnwnwsenw +seswseswswseseswswneswswswswswswswswsw +nenwneneenenenwswnenwneswneenwneswnenenene +seswswseseswseseswseseneswswseswswseswse +swswseswnenwswswseswswswswseswseswswswswsw +wswwswswwneswswwsweswswswwswsw +nenenesenenwnesenesenenewnwnenwnwnwswsenw +wneenenwnenesesenewnwswnwenwneswnene +sewenwwwwwwseenwnwnwwwnwswwnwne +ewwneeneneeseeesewneneewnewne +nenenesenesenwwneneswnwnweneswswsenwne +weseeeeseeeneneweseseswsewwnw +nwwwswwswsesewswnwswswswwnweswswe +weswwwewwnwwswwwnwseewwwnw +seswswseswseeseswswnwsewseswswnewswswe +sesenwswesenwswseseseseseswswswswswswswsw +wnwnwesewsesewwswnwnwwewnewwnee +seseeseswwswswseswsw +swwnwenwseneswwneenwnewnwnesewswnesee +nwwnwnwnwsenwnwnewnwnwnw +esesewneseeeeeeesee +senwnesewnwnwnenwwswnwwnenesenwnwsww +seswsewswswesewseseseseseneswswsesesw +neseseswwenewswswswnwswsewsesesenesw +senesenwnwswsesewseseswswseseseseswsee +enenenenewneeeneneneneenenenesenenene +wwwwnwnwnwwnwnwnwewwwnw +wnwenwnwnwnwswnwsenwseswwenweenwnwsw +nwnwnwnwenwnwnwnenewnwnwnenwnwnwnwnwnw +seseseenwswnwswswswswseseswneneseswswwsw +neeenwnenwwwnewnenenwnwnesenenenenw +swsenwwnwseneesweswseneneeeneenwwswse +eeeeeseneneeeneneneneeneweesenwe +ewseeswneewenenweeeweneneeeene +swswswswswseneswwswswseswseseseswseswsee +eeeseseseseseseesenwseeeseseseswsese +nwnenenenenewnenwnenenwneswseenenenenenenw +swsesweseswswsenwswseseswswseseswswnwse +senenenewenenenenenenenewnenenesene +nesewseneswwsweseswneseseseswnesese +nwnwnwnwnwwsenwesenwnwnwnwnwnwnwsenwnwnw +nenwnwwnwnwnwnwnenwnwneenenenenenene +wswwsenwwswswwewnww +wwwnewwswwwwwwsewwwwwswww +wswseseneswewseneswswnwswswsenesenwswe +wnwnwenwwnwnwwswswwwnwnwwsweenwnwnw +wswweswwwswnwswswwwwseewswswwnw +swswwwwnwswsweswwswwswswswswswwsww +neseneneeweneneeneneneneneneneeswnenw +nwswswswswswswswswswsesw +nwnwnenwnwnwswnwnwesenwnwnwnwswnwnwswnenw +neswwswseswseneswswseswswswswswswseswswse +swseswsweswswseseswseseswswswswswswnwsw +swsweswesweneeneswneenwneneneneene +seseseseseswsenwseseseseswsese +swwswwewwnewwneswwswwwnewww +neneeeneneeseenenweeee +enwwwswnwnwnewswswwnwwweeseww +nwneeenenenenesenweseeneeweneswsw +nenenewneneneneneneneeenenenenenenene +seeseseseseneseeeseswenwnweseswnwseee +swneswseswseswsesenewsesenesewenesw +nwnwwwwwnwwewwnwwwwwwsenwnw +swswswwsewswswwswnwwsweswnwswwwww +seswseseswseswneseseenwseswwsw +newnewesewwswsewnw +weseesesewneseseseesenesesesesesewse +eeeeseeeeeneeeenenewe +wswwseswseneswswswswnesweseswnwswswswe +eweeseeeeeeneneeeseeseeseswese +nweenwwnwnwwnwenwnwnwnwwwswwswnwse +wwwnenwnwswwnwwwwwnwnwnwwnwwnenwse +enenenenenewnwnesweseewenenesenee +esewswnwenwwnwnwnwnwnwnwswnwwwwse +eeweneswenenweswnesweneneeneee +wseneeseeesewnwswswnenesewneswee +swneeenenenenenwnenenenenenenenewnesene +nwswswswwswseswswswswnwswswsewwswswsw +neenwnwnwnenwnwnwnwnwnwnenwnww +eeeswenweeeseeeeeseseeeee +swseswswswseseswseswneseseswswswsese +nenwnenenwnwnenenenwswnenwnenwnewnwenene +nwnwseseseswswseswswseswsweswswswseseseswse +swnewwwwswwwwsww +seseseswsweswswswswseswseseswseswswsww +nwnenewnenwnwnenwnwnenenenenenesenenenwnw +nwenwnenwnwsenenesenwnwswnesenwneew +swwswwseswswswswwenenenwsene +swswsweseseseseswseswswseswnwswnwseswsenw +wsesenewnewnwwwnwsewnwsewwwnwww +sewswnenesewswenwsenwswneseeneseswsw +swwnwswnwwnwsenwnwwwnwwenenwwnwew +seseseeseswneeseseswesesesesenwswwne +neneeeesenenwnenweeneswneeweseeene +swwswswswsewwwswwnenweweewsewnwsw +seeswseswseseseswseseseseseseswwswnese +esweseseseseseeseseseeeseseseeseenw +wswwswwswswswnwswswswswew +nwnwnwnwnwnwnwnwnweenwwnwnenwsenwnwswnw +eeenwnenewneeeneeeneeeeswneneee +nwwnwwnesesweswswswwseseneeswsweewsw +neweneneeneneneweneneesenenenenenene +nwwnweswnwnwswewnwewenwewwwnw +seswsesesenwwseswneseseseeseseswse +wnwwwnwwwwnwwwewwwwwwww +enwseseseseswswsesesesesesesesesesesesesw +wnwnwwnwnwewnwwwnwwnwwwswnw +eseswseenwneenewnwnwesewnweswswsw +neseswwswwwswswneeswwnweswseswnwesw +seeseseseeenweseeseseeseeswseeese +nwseeseseweseseseeseseeesewnwsesese +swswswseswnwseseswswnwnwsweswseseswswsesw +wweenwswwnwwwwnwnwnwwnwswnwwne +senwwwnewwwwwwswwnwwnwsewwese +swswswswswswswswwswneswswswswseswswswsw +wswswswswswwswwwsweewwswswswswswsw +neneneneeewseneneneneneeneneneeswne +swswneswnwswswswswseswnwswswswwswesese +swwwwwwswsewwwwwenewwwww +nwswwwnwswnewsenwesenwenwnwnwesene +nenewwwnenwweswswwwseswswswwew +seneseseseswswseseswsesesew +swsenwweswwwnewnwnwenwseswsenwswesene +nwnwnwnwnwnenenwnwnwnwnwnenwnenwnwnwnwse +swswswnwswswseswswsweswsweseswswswsewsw +wwswseseseseswweswseeswseswneswswse +sweseswswsesewseseseswsenwneswnesesesese +nenenwnwnwnesenenwnwnenwnweswnenwnwnene +eseneesesenesewsw +seseseseswswsesesesesesewnwseseswswsenwne +sweenenenweeneenene +swwesweneenweeeeese +wseseswseeseseswseneseswnwswseswwswseswse +nwseseeseseeseeseeeenwewwewe +wswswwseswswwswswswswwwwswnenwwsewsw +seswswnwswseswswswswneswnewsweswnwnwse +seswseseseswseseswsenwswsesesesesesesesw +nwsenenwseenwnenenwneswnwnwnww +nenwwwnwnwwwsewwwnwwnwwnwnwswnwne +eeeenesweenenweeene +eseweswseeesesesesenwwnenwsweeeese +ewwwwwwwsewwwwwwnwnwnwnwww +seswseseswseesesesesesewneswseseswswsw +wwwwwwnwwwwwewwwwswwweww +newnewsewswsewenwnwwswneswewesw +eneswneswsweeenwswnwswnwnwswswswsw +sesenweseeseeeeeeee +swswenwnwnwwenwwswsewneewseeswsesw +wneswwwnewwneswwseswwswswwwnew +swwwswwsewseseneswnwneswwwwnwww +eswnwswnwneenwneneseneseswneneneenenenw +senewnwnwsweneswseeneseeewewswneswe +swnwseseenewnenwnewne +neneneneseeneeneneewneneneee +nwnwnwwnwnwwwwnwnwwnwnwwnwwsenww +swwneeneswswseswwsweneswwsenwswswswsw +neneswnwnenewenwnenenwsenwnenenwnwnw +seeeseseeeseeeesewsesee +wsewswwsewwswnesewwnwwwenenenwnw +esenweseeeseeeeseeeseeesweenw +enweeseseenwsesenweseseswnwse +eewneewwneeneeneneneseneneenene +sesesenwneswwswswneseseseswswswseseswsene +weesenewnwswswswnweswswseswsww +seseseeseswseeseseseseseseswsenenwseese +nwwewswwsenwnwsenwnenwnwnwenenwsenesw +seeeeswenweseeeswneswswenwswnwwne +swswsenwseenwsenwnenesewnwwene +eeeeeenweeeeeneseseeeewsese +nwenwwnwnwnwwnwswwwnwwnwwnwnwwwe +nwsenenesenwneeneswnwwnwneseewsewse +swwsenwnenwnwnwsenewsenwsenenwewnenese +wwwwewwnwwwwwwww +neneneneneeneenwneneeneneneeneswnene +senesesesesesesenesesesesesesesesewsesw +enwwswwnewswenewsewsenew +nenesenwwseneneseneneneswnenenenewwnenenw +eeeeeeeesweeeeeseeeeneenw +nwnwwnewesewswsweewwwswneesene +seseeseseeeseewseseeseseseneseee +swenwnenwnwsesewswswnwnwenwnwnwnwene +weswnwswswseseeeswneeeswenweenene +swseswseswsenwseseseseswswswseswsesesw +eseneeswnwswwneseene +swswnwswswswswnwwwswnesesewswwsesw +eeweewsenweeeeeesenwsee +seneseswswweswswsesewseesw +weeeeseeseseeeeseeeseseseee +nwsenwswnwnwnwnwewnwwnwnwnwnwwnwwew +enwnwswseseeneswseswswnwseswswsese +neswnwnenenwnenwnenenenenwnenenenenenenw +wswswswswnwswswswswswswsweswswswswwwsw +eeeneneeeeeneeesweweeeene +eneswnwneweneesw +wwwesewswswwwswwnwwwwwswwsw +nwnwnwswnenwnwnenwnenenesenwnwnwnwnwnwnw +eeseeweswseeeeeeeseesenesenw +eweeeneneeeneeseeeeneeeneene +neseseseneseesenwsewsenwseseseseswsesesw +swswenwnewnwwwsenwweewsenwweww +neswswswswswswwswswswnwswswswswsweneswswsw \ No newline at end of file diff --git a/twentyfour/sample.txt b/twentyfour/sample.txt new file mode 100644 index 0000000..55460d5 --- /dev/null +++ b/twentyfour/sample.txt @@ -0,0 +1,20 @@ +sesenwnenenewseeswwswswwnenewsewsw +neeenesenwnwwswnenewnwwsewnenwseswesw +seswneswswsenwwnwse +nwnwneseeswswnenewneswwnewseswneseene +swweswneswnenwsewnwneneseenw +eesenwseswswnenwswnwnwsewwnwsene +sewnenenenesenwsewnenwwwse +wenwwweseeeweswwwnwwe +wsweesenenewnwwnwsenewsenwwsesesenwne +neeswseenwwswnwswswnw +nenwswwsewswnenenewsenwsenwnesesenew +enewnwewneswsewnwswenweswnenwsenwsw +sweneswneswneneenwnewenewwneswswnese +swwesenesewenwneswnwwneseswwne +enesenwswwswneneswsenwnewswseenwsese +wnwnesenesenenwwnenwsewesewsesesew +nenewswnwewswnenesenwnesewesw +eneswnwswnwsenenwnwnwwseeswneewsenese +neswnwewnwnwseenwseesewsenwsweewe +wseweeenwnesenwwwswnew \ No newline at end of file