123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- const input = `....#...##......##..#..#.#...#.
- ..######...#......#....#..#.##.
- ..#.#...##......#.#..#..#....#.
- ..#.....#..#.#........#.#..#..#
- #......##..###...#.#..#.....#..
- #.......##...###...#....#......
- .....##...#......##.#.#..#.##..
- .........#......#.....#......#.
- ..#.#..#....#....#......##.#.##
- .#...#..#.............#.#..#.#.
- ....#..#.#.##.#....#..#..#....#
- ...#..#.....#.......#...#..#..#
- .....#.....#.......#..#...#....
- .##.......#...#..#........#...#
- ...#.......#.#.#...#.#.#......#
- #....#..#.....#......##....#..#
- ###.#......#.#.#.#..#....#....#
- ......##......#.#...#...#..#...
- .....#......#.#.#......#.#.....
- ...##...#..#........#..#.##....
- ..##.#.#..#...###..........#.#.
- .#..#..#.....#.........#.###.#.
- ....##.....#...#...##..#.##...#
- ....#.##....#.....##......#....
- ........#.#.........#.#.......#
- #....##.#....#..#...#..........
- #..###......#....##..........##
- ....##.#.....#..#.##......#....
- #..#......#......#.............
- ...##.....##.......#.......#...
- #...#.#.....#..........#...###.
- #.....#..#.#.###...#......###..
- ...##.#......#........#..#.....
- ......#.....###.#...##........#
- .#......##......##....#....#...
- ..#.#..#.....##....#....#..#...
- ..#.#.....#.##.#.....#.....#...
- ....#.......#...#.........##...
- .#....#..#.......##.......#....
- ..#..##.....#...##.##.#.#......
- .##.#....#............#.......#
- .......#...#..#.#.##.....##..##
- ..###....#..#.##........##.#...
- ....#.#..#.....#..#.#.....#....
- ..#..#.#..............#..#.....
- .......#.#.#.........#......#..
- ...##..#.#...#......##.#.......
- #....#.#.........#...#....#..##
- .#..#.#...#.......#.#.#....#.##
- .#..###.#..#.#.....#..#........
- #.#..##.###.....##.........#..#
- #...##...#..##..#..#..........#
- .#...#..#......................
- ...##..###...........#.#...##..
- ..........#.#....#.#...........
- ..#....#....#..#....#.#.#......
- .#..#.....###......#...#...#...
- #.##..#..#.........#..#....#...
- ........#......#...#.........#.
- ..#.....#.#..##...#.#.#...##...
- ..#...........#.##..#.#..#.##..
- ..............##...#.#......#..
- #.#..#....#...##.###........#..
- .#...#..#........#........##..#
- .....##..#...#.....#.#.........
- .#...#...#....###...#.#.#..##..
- ....#.........#....###..##....#
- .#....#...####...##....####.#..
- ..#..#.......#..#......#.#.#...
- ....#....#.......##..#.#.......
- ..#....#...........##.#.##.....
- #..#..#...##.##....#.#.#.###.##
- ...#...#....#.#...##...#....###
- ......##........#.........#.#..
- ....#####..#..##.......#.#....#
- ....##..#...###....#..#.....#..
- ..#........#..#.#.....#....#...
- ..#....#......#..#...#......#..
- ...#.....##...#.#..##.....#..#.
- ...#..#.......####.##...#......
- .....#..#..#.##..##....#..#.#..
- ..#..#..##.#.#.##..#..#...#....
- ...#..........#.........#....##
- .##.....###...............#.##.
- ...##...........#.#.#......#..#
- .#...#.#.##....#....#..#.......
- .#...###.#....#..#..#..#......#
- #..#........###...........#..#.
- ..#...#......#.#.#......####.#.
- ...#.#....##.#.....#.....##....
- ...###..#.#.#...#.....#.###..#.
- .#.#..#...##......#..........#.
- ##.....#.......#.#..###...#.#..
- ##.###....#.....#.....###.#....
- #...#..##....#.#...#...#......#
- .....##.#........#.###.........
- .#..#..#.#......##.#...#.#.....
- #..#.#........##...........##.#
- #...###..#..####..#.#..........
- ..#...#....#...##.#....#....##.
- ......#.#........#.....#..#....
- #.........#...#.....#...#..##..
- #....#.........#...#.##..###.#.
- #...###...#.##.#.#.............
- #.#....#....#......#....#.#...#
- ##...#.##......#..#.#....#.....
- ....#...#.##....#..............
- .........##..........#..##..#..
- ......##....#.#......#.........
- ..#.#..............#......#..##
- ...........##.......#.#.#......
- ##...#........##.......#.#.....
- ....#...#...#....#.#......##...
- ...#..#.#.#.........#..#.#....#
- .##.#...#.#.........#.....##.#.
- #.#.....#.#.....#..............
- ..#.#..#....#..........#..##...
- ...#..#....................#..#
- ...........#...........#...#..#
- ............#...#............##
- ..#....##......##...........#..
- ..#..#..#....#....##......##.##
- ##..........#..##.##.#...#.....
- ............#..#........###.#..
- ###...##.#.#....#....#.#....#..
- ...#......##...#.......####....
- .......#..#..#.#.....#.........
- ........##.......##.....#......
- #.#...#.###....#..#...##.......
- ...#.#....#..#####.#..##.#.....
- ..#.#..##.......###...#.....#..
- ..#.......#..#...#...#..#.##...
- ......#..#.......#.....#....#..
- .......#........#.#.......##..#
- .#.#.....#.......#.......##..#.
- ..#.#....#.#.#####.....#...#...
- #..#............###.......#..#.
- ........##.........#..#...###..
- .#............##...#.....#.....
- .#..##..#....#....#.......#....
- ....##..........##.............
- .##..........#..#..#....#...#..
- ...#..#..#............####.....
- .............#..#.##..#.#.##...
- .....#........#....#.#.......#.
- ###.#..#.#...#....##...........
- ....#......#...#....##.......#.
- .......#.#...#.#...#........##.
- ..........#........#..#.##.....
- ##..#.#.....##.#...............
- .....#....#................#...
- ...##....#........##.#....#....
- .....##...###....#.#..#.......#
- .....#.#.........##....###.....
- .#.....##......#..##..##...##.#
- .#..............#.....#.#......
- .##......#..#..#......##.......
- .......#..................#....
- ...#.#...##......####.........#
- #....#####.#.#..#..#..#...#...#
- ##.#...#.......#....#...#...###
- ...#........#.....#...#.##.....
- ..##....#.......#....#.......##
- #......#..##...#..##.#.....#.#.
- ..###........#.#..#........#.#.
- ...#.###..........#.....#.#.#..
- #.###.....#...#...#..##..###...
- #....#.#.....#.#........#......
- ........#.......##.......#.....
- ...........#...#......##.......
- ............#...#....#..#.....#
- #.#.#.#....#.....#.#..........#
- #.##...#...#..#....##.#.......#
- ...#..#......#..#...##..##..#..
- #....#......#.#.....##.#..#....
- #....#..##.#......#.#.....#..##
- .#..##....##....#.#...#...#....
- #.#.###....#.#............#...#
- .#.#....#..#..........#....#.#.
- ......#..#.#...............##..
- ..#......###.#..........#.###..
- ....#.##.#..#...##..#.#...#....
- ..............#...##.......#.##
- .#...........#....#....#.##....
- #..#....#.....#...#.....##...#.
- .........#...#.##.......#...#.#
- .....#......#.........#.#..#...
- ##..........#.#..##...#.#.#....
- ##..##.#..#..#.....#.##....#...
- ........##....#.#.#....#......#
- .#.##...#.###....#.........#..#
- ..........#....###..#.........#
- #.#..#.#...#.......#..##.......
- ..#....#...###..............##.
- #..###.....####...#..#..#...#..
- ......#..#...###........###....
- ..#.....#...#.......#....###..#
- .#.........#.#.#....#.#.......#
- #.#.###.#.#...........#........
- ......#..#.........#........#..
- ...........##.#........#.#...#.
- .....#.#......##.......#.....##
- ...##...#............#..#.....#
- .....#..##....##...##.#..#.#...
- ...#...#........#.#......##....
- ........#..##..#..#......##.#..
- .#.#.....#.....#...........#.##
- .#...#.#............#......#...
- .....#...#........#....#..#.#..
- ...##....#..#...#..............
- #....##.#.#............#.......
- #..#..#.....##..#........##.#.#
- ##..#.#....#....##.......###..#
- .#.#.#.....###.....#.#......###
- .....#..#...###...#....#.#...#.
- .##.....................##....#
- .#.....#.........#....#.....##.
- #...#....#.#...###.......#.#..#
- ...#.................#.#....#.#
- .##...#.#......................
- .##.#........#...##............
- .#....#.....#.........#.##..##.
- #......#...##..#.........##.##.
- ......#......#...####..#.##....
- .###....#..##......#.##......#.
- ..#...#....#..#.......#.#......
- #....#...#.................#.#.
- ....#.#.#..#...#..#.......#.#.#
- #.#...##.......#.....##.#......
- #.........#.....##..##..#......
- ....#..##..#.....#..#..#.#..#..
- ......#.#..#.#.#....#.#.......#
- .##......#..#....##...##..#....
- ..#..#......#...##..#.##.....#.
- ..#..#.......#.#....#.....#...#
- ....#.#.....###...#.......#.#..
- ..#....##.....##.#........##...
- #...............##....#.....##.
- .#.........#....#...##.###.##.#
- .#.##..#.............#.#.#..#..
- .#.....#.................##....
- ..####.........#.#......#.#..#.
- #.......#..........#.#........#
- .#.#...##.....#.#.......#....#.
- ..#.##.#.......###....#....#...
- .#....##.............##.#.#.#..
- #.#.....#.#.#.#..#......##..#..
- .............#..........#.#.#..
- ...#.#.............#.#...##....
- .......#..#.#.......#..#.#....#
- .............#.........###..#..
- .#.#..#....#.....#..#.....#...#
- #.....#....##..##.#..#........#
- ..##..###.....##....#.#..#.....
- ..#...##....#...#.#..........#.
- ...##..##.#.....#....#.........
- ..#...#........##.#..#........#
- #.............#.###......#.##..
- .#...#........#...........#...#
- ..##.......#.#..##.##......#...
- ...#.#...##....##..#...........
- .#......##........#....##....#.
- .........#..#....#...#..##.##..
- ....#..#.#...#.......#.#.##....
- ...#.#......#.#..#..#.#....#..#
- .......#........#.........###..
- #.#..#.#.........##............
- ##..##..#.##..###...#.#...#....
- .#....#.#..#...#....#.##.....#.
- .#.#.#.#........##...#..#.#.##.
- .#..#.#..#...........#..#......
- ..#.##.#...#....#.........#...#
- .....##...#.#...#...#....#.....
- ..#..........#.#.#.......##.#..
- #.#............#..#.....#..#...
- ..#...........##.#.##.#....#..#
- #..####.....#............#.....
- .##......#####.#..#.....#....#.
- ...##..#.#......#.#..#..#...##.
- #....................#.##...#.#
- ...#............#.............#
- ....#.##..........#.....#......
- ....##..##....#.#..............
- ...........#....##.#.....#.....
- ....#.....#....#....#......#...
- #...##........#...#........#.#.
- ........#.....##..#.##.#..#.#.#
- ....##......##....#.....##....#
- ...#.#........##.......#...##..
- #......##..#.#.#....##......#..
- ..#.......#.......##..#.##.....
- .#...#...#.#.............##....
- ......#.#.#.........##...#..#.#
- .....#..####....#.##..........#
- ...#...#.#....#.....#..#.....##
- .........#.......#......###....
- ........##..##..#.#.#...###...#
- .#..##.#....#...##.....#.#.#...
- ........##...#...##..#.........
- .........#.......#.##..#...####
- #......#.....#..............#.#
- ##..##.#.##.....##...........#.
- #.............#.........#......
- ...####.#.##..#.#.#.##.#......#
- ..#.....##....#...#............
- #..............#......#...###..
- ..#..#.#...#.##.........##.....
- ..#...##..#........#..#.##..##.
- ......###...#..#....#..#.###...
- ...##.##.###.....##.#.......#..
- #....#..###..#.......#.#.#..#..
- ..##.............##..##...###.#
- .#.#..#.........#..........#...
- .........#.#.....##...#..#...##
- ....#..#....#####..#...#..#....
- ...#.....#.....#...#.#..#.#....
- .#..#.............#.......##.#.
- ...##.......#.#.....##......#..
- ...........##..#.##..###...#.#.
- ...........#...........#...#..#
- ..#....#.##.#..#..#...........#
- ..#.....##...#......#...#......
- ...###.###.....##..........#..#`
- const dataLines = input.split("\n");
- function formatDataLine(dataLine) {
- return dataLine.split("");
- };
- const map = dataLines.map(formatDataLine);
- const mapHeight = map.length;
- const mapWidth = map[0].length;
- const pointer = [0,0];
- function step(pointer, map, goRight, goDown) {
- const x = pointer[0];
- const y = pointer[1];
- let newX = x + goRight;
- let newY = y + goDown;
- if (newX > (mapWidth - 1)) {
- newX = newX - mapWidth;
- }
- pointer[0] = newX;
- pointer[1] = newY;
- // has to do y then x. [ row[col, col], ... ]
- return map[pointer[1]][pointer[0]];
- }
- let treeCount = 0;
- while(pointer[1] < (mapHeight - 1)) {
- const land = step(pointer, map, 3, 1);
- if (land === "#") treeCount++;
- }
- console.log(treeCount);
|