Solve 2020/03
parent
559f49ac56
commit
f16dccdee6
@ -0,0 +1,11 @@
|
||||
..##.......
|
||||
#...#...#..
|
||||
.#....#..#.
|
||||
..#.#...#.#
|
||||
.#...##..#.
|
||||
..#.##.....
|
||||
.#.#.#....#
|
||||
.#........#
|
||||
#.##...#...
|
||||
#...##....#
|
||||
.#..#...#.#
|
@ -0,0 +1,323 @@
|
||||
...#...###......##.#..#.....##.
|
||||
..#.#.#....#.##.#......#.#....#
|
||||
......#.....#......#....#...##.
|
||||
...#.....##.#..#........##.....
|
||||
...##...##...#...#....###....#.
|
||||
...##...##.......#....#...#.#..
|
||||
..............##..#..#........#
|
||||
#.#....#.........#...##.#.#.#.#
|
||||
.#..##......#.#......#...#....#
|
||||
#....#..#.#.....#..#...#...#...
|
||||
#.#.#.....##.....#.........#...
|
||||
......###..#....#..#..#.#....#.
|
||||
##.####...#.............#.##..#
|
||||
....#....#..#......#.......#...
|
||||
...#.......#.#..#.........##.#.
|
||||
......#.#.....###.###..###..#..
|
||||
##..##.......#.#.....#..#....#.
|
||||
..##.#..#....#.............##.#
|
||||
....#.#.#..#..#........##....#.
|
||||
.....####..#..#.###..#....##..#
|
||||
#.#.......#...##.##.##..#....#.
|
||||
.#..#..##...####.#......#..#...
|
||||
#...##.......#...####......##..
|
||||
...#.####....#.#...###.#.#...#.
|
||||
....#...........#.##.##.#......
|
||||
.....##...#.######.#..#....#..#
|
||||
.#....#...##....#..######....#.
|
||||
...#.....#...#####.##...#..#.#.
|
||||
.....#...##........##.##.##.###
|
||||
#.#..#....##....#......#....#.#
|
||||
......##...#.........#....#.#..
|
||||
###..#..##......##.#####.###.##
|
||||
#.....#..##.##....#...........#
|
||||
##..#.#..##..#.#.....#......#..
|
||||
.#.##.#..#.#....##..#..#....#..
|
||||
.#......##..##.#...#..#.......#
|
||||
#....##.##..###..###......##.#.
|
||||
....###..##.......#.###.#....#.
|
||||
..##........#........##.....#..
|
||||
.#..#.....#...####.##...##.....
|
||||
....#.#.#.....#.##..##.....#..#
|
||||
..............#.....#...#.....#
|
||||
.#.....#......###...........#.#
|
||||
.....#.#......#.##..#..........
|
||||
.#......###............#.#.##..
|
||||
.#.#....##.#..###.....#.##..#.#
|
||||
.......#.#.#..#..#..#...##..#.#
|
||||
.#.###...##.#.#.####.#.#...#...
|
||||
...#.#....#......##.##.#.......
|
||||
#...#.....##....#........##....
|
||||
.....###...#.##.#......##.#..#.
|
||||
..#...##.##.###..#..#......####
|
||||
.#.##.#..#.##..##..........##..
|
||||
..#.#.#..#.#.....#...###.....#.
|
||||
..#..#.#....#.##.............##
|
||||
.......#..###..#.#...#.....##.#
|
||||
####.#.#......#..#.##.........#
|
||||
..........#.....#..##......###.
|
||||
..#..............#...#..##.....
|
||||
......#.#.#..#.##.....####..##.
|
||||
.##.#..#.#....#.......#..#.....
|
||||
..#..#..#.##.#....###.#.#.#.#.#
|
||||
.....#....#......###..#........
|
||||
#.#.#..#...###.....#......#.##.
|
||||
...#.#....#.#......#........#..
|
||||
..#...###.#...#..#....##...#..#
|
||||
.###.##..#..#...###.#..#.####..
|
||||
#....#..##..##..#......#...##..
|
||||
#.#..#...#..#...###..#.#.##....
|
||||
##....#....##.####...#.#.###...
|
||||
##.#...#.......#.##.##....#...#
|
||||
..#.#..........#..#.#.#....#..#
|
||||
..#........#...#....#....#....#
|
||||
..#..#....#.......#........#...
|
||||
......#....#....##.#....#.#.##.
|
||||
.##...###.##.##....##.#...###..
|
||||
.....##..#.#.....###..#.....###
|
||||
....##.#.##...##..##........#..
|
||||
#...#..##.#.#....#......#...#..
|
||||
.###.##.#........#.####....#...
|
||||
#.##.....#..#...#..##.##..#.#..
|
||||
.....#.#..#....#..#...##.##.#..
|
||||
.#......#####...##...#.#.###.#.
|
||||
#......##....#.....#......##.#.
|
||||
#.#.##.###.#......#####..#.....
|
||||
........###.#...#..#.#........#
|
||||
....#....###..#.##.#...#....#..
|
||||
..........#..#.#....#...#.#...#
|
||||
#.##......###.#.#.#....####...#
|
||||
...#.#....#........##.#.....##.
|
||||
.....##..#.#.#..###...##...#...
|
||||
#...#...#....#....##........#..
|
||||
.....#.........##.#......#..#..
|
||||
#.....##..#.###.....#....##.##.
|
||||
...#..#..#.#........##...##.#.#
|
||||
..#..##.###.....#.#.....###.##.
|
||||
..###.........#...##.....###...
|
||||
...###...##.#...##....##.......
|
||||
.#.#..#...###..#.#....#....#...
|
||||
##..#.......#....#.#...#..#..#.
|
||||
..#......#....####..##..#.###.#
|
||||
..#.......##........#.#.#..#...
|
||||
.#.......#.##.#.##.#.......#..#
|
||||
###...#...#...#...#..#...#...##
|
||||
..#..........#..###........##..
|
||||
.##..#....##......##........#.#
|
||||
......#.##......#......##...#.#
|
||||
.#.#....#.#.#........#......#..
|
||||
.#.#..#....####..##...##....#..
|
||||
.#...##..#..#..#####....##.#...
|
||||
.##.#.#...#...#.#...#.##.#...#.
|
||||
###.#...##..#.###.#.....#.##.#.
|
||||
#.....#.###.#.#...#..#....#.#..
|
||||
..##..#....#......#.........###
|
||||
.#...#...##......#...#.####....
|
||||
..#.##...##..............#.#..#
|
||||
..#......#..##...........#..#.#
|
||||
..#####...#..#.......##...###..
|
||||
..##..#....#.#...###.#...#.....
|
||||
..#....#..#.#.......#..#.#.#...
|
||||
.##..#.#.....##....#.......#...
|
||||
...#.#..###...##....#....##..#.
|
||||
.....##..#...##.####....##...#.
|
||||
.......#.........#...#.##..####
|
||||
........###..#..#.##.###..#....
|
||||
.#.#..#.##.##.........#...#....
|
||||
.###......#.....#....##....####
|
||||
.##..##...........#.....#.....#
|
||||
#.#.#.#.#.#.##..#.#.#..#.##....
|
||||
.##.##...##..#....##..###..####
|
||||
#..##.#......#...###.........#.
|
||||
#..#...#..##..#..##.....##...#.
|
||||
#...##..#...##.#.###.#...#.....
|
||||
.###.....#.......#...#.##.###.#
|
||||
..........#.#......#...###...##
|
||||
..##....#.#..#....#.###...#..##
|
||||
#.#..#....##.##..##.........##.
|
||||
#.....#.##.###.#..#....##...#..
|
||||
...#........##...#..###..######
|
||||
#..#.#.#.#...#....#....###.#..#
|
||||
...##.##.##.....##..#........#.
|
||||
..#.#....#..#.......#...##.##.#
|
||||
###.##.......##..#.####...#.#..
|
||||
....#.#.....##.....#.#.##...#..
|
||||
.#..##..#.....#.#..#...#..#..#.
|
||||
.###....##...#......#.....#....
|
||||
##.##.###......#...#...###.#...
|
||||
#...#.##...#.#....##.....####..
|
||||
#.#.#.#...###...##.............
|
||||
..#....#.....##.#...#......#...
|
||||
....#...#......#...#..#...#.#..
|
||||
.###..#.....#..#...#....#...#..
|
||||
..#...#.#..###.......#..#.#...#
|
||||
#...###.##.....#....#..#.#..##.
|
||||
...#.##.#.##......#.#.#.##.....
|
||||
........####...##...##..#....#.
|
||||
.#.#....#....#.#...##.###...##.
|
||||
#.#...###.#.#.#....#....#.#....
|
||||
.####.#..#.#....#..#.#..#..#...
|
||||
#####...#...#...#....#.#.#..##.
|
||||
..###.##.###...#..........#.##.
|
||||
##.....#...#....###..###.#.#.#.
|
||||
#..##.#..#..#..#...#.#...###..#
|
||||
##....#.#...##......#.#...#...#
|
||||
.##..........#.#....#...#.##..#
|
||||
....#....####.#.####......#.###
|
||||
..##.#.....####.#.####.......#.
|
||||
#.##.##.#.....#.##......##...#.
|
||||
......###..#.....#.....##......
|
||||
..#..#....#.#...#.....#......##
|
||||
##..#..#..###.#.#..#..##.....#.
|
||||
#....#.#.....#####...#.#.......
|
||||
.....#..#....#.#.#..#...#...#..
|
||||
............#.##......##.##.#.#
|
||||
....#...#.#........###....#....
|
||||
..#..#...###.#....##..#..###.##
|
||||
#.##....#...#.....##..#.##.#...
|
||||
...##..###...#.#.....##.#......
|
||||
.#..#.##.#####..#.......#..###.
|
||||
...#.##...###.....####.#.#.....
|
||||
.#......##.#.#.#.#.##.#.....#..
|
||||
..#.##.#..##.......#.#.....##..
|
||||
..................#....#...#...
|
||||
.##.#..#.#.#..#.......#.#..##.#
|
||||
....#........#......#..####..#.
|
||||
#...#...##..##.#..#.......##...
|
||||
#..#..#..#..#........####..#.#.
|
||||
..#.#......#..#.##.##.#.#...#.#
|
||||
...#..#......#.#.###.#.##..##..
|
||||
..#...##.....#..#...##..#.#....
|
||||
#.........#....#..#....##.##..#
|
||||
..#..#.#....#..#...#.##.....#..
|
||||
...#..#...#.#.....#..##..#.#...
|
||||
....#........#.#....##..##..#..
|
||||
#.....#.#..#.......#.##.....#..
|
||||
.#.###.###...##...##..###...#..
|
||||
.##.##.......#.#......#.....#.#
|
||||
...#....##....#..#..........#.#
|
||||
..#.##.........#.#.....#.....#.
|
||||
...#.##..##.......##..##...#...
|
||||
#.##......##.##..#.....##...##.
|
||||
#.#.#..##...#.#............#.#.
|
||||
....#.....#......##...#.#.....#
|
||||
...#.#......#.#...###.......#..
|
||||
......##..###....#.#...#.#####.
|
||||
..#..#.#.#...##.#...###..##..#.
|
||||
##.##.#.#.##.#..#....#...#...#.
|
||||
#..#....######.##.#...#...#.#..
|
||||
.#..#.##....#..#.#.......#....#
|
||||
....#....#......##....##.#.#...
|
||||
.###......#..#..#.......####..#
|
||||
.#.#.....#..###...........##...
|
||||
.##..##.##.....####..#..#..##..
|
||||
..#..##.#......#...###.##..#.#.
|
||||
....##..#.....###..#.##....##.#
|
||||
#..#......#....#.........#.....
|
||||
.#...#.....#.#..#..##....#.....
|
||||
.##..#...#..##.#..#...........#
|
||||
..#..##........##.......#..#...
|
||||
#.....#....#....#.#.#...##.#...
|
||||
...#...#.#.#..#.##.#.#...#.....
|
||||
..#..#.#....#....###....#.#.#..
|
||||
...###..#...#..#....#.....#....
|
||||
...#...#.#..#.....#...###......
|
||||
##......#..........#.#.#..#.#.#
|
||||
....#.....#.....#..#..#.#.#.#..
|
||||
...####...#.##...#.#..#....#.#.
|
||||
#.##........##.............#.##
|
||||
#.#.#.#.#.....................#
|
||||
.#.###....#..##.##.##....#.....
|
||||
#.#...#.####.###...#..#..#.#...
|
||||
.##...#..###.......##..#.#.....
|
||||
#.#.#.#...#...#.##.....#.......
|
||||
.##.#.#.#......####..#.#.......
|
||||
###..........#......#...##...#.
|
||||
.........##...#.##...#.#.......
|
||||
...#.#.....#...#..#...#..##..#.
|
||||
.#..###...#.#.........###....#.
|
||||
##..#...#........#.........##..
|
||||
.....#...#.#...#.#.#...........
|
||||
..#....##...#.#..#..#.##....##.
|
||||
.##....#.#.....##.#..#..#...##.
|
||||
..##......#.#...#.#.......##.#.
|
||||
##...#..#...##.#........#.##...
|
||||
#......#.##..#.#..#.###.......#
|
||||
#.#...#.....#.#......#.#.#.....
|
||||
#.....#..#.......#....##.#.#..#
|
||||
###.#....#..##.#.##....#....#..
|
||||
#.##.##....#.#..#.#...#....#...
|
||||
####...#####...#.....#....##.#.
|
||||
....#.#...#.#.##.#.#.##.#.#.###
|
||||
#.....##.#.....#.#......#.#..#.
|
||||
.#....##.#..#........#...##.#..
|
||||
......#...#....##....##....##..
|
||||
..###.....#....##.#...#..#.....
|
||||
#....##...##.##..##.#...#...#..
|
||||
#..#...#...#.#....##..#.#....#.
|
||||
......................#.....#..
|
||||
.#..#...#.........#....##...###
|
||||
.##.#.#...##...#...#...#..#....
|
||||
.#.###....#.#............##..#.
|
||||
###..##.#.#.#.#....##...#......
|
||||
.##................####...##.##
|
||||
.#.#.........##....#.#.##.##.#.
|
||||
....#...#...#...##...#.##.#..#.
|
||||
.#.#........#..##.....#..#....#
|
||||
##.#..#.#....#.....#...#...#...
|
||||
.#...##....#.....##....#..#.#.#
|
||||
####.....#..#....#......###.##.
|
||||
##..##.#....###.....#...#......
|
||||
.##.#...#.....#.#..#.#..#.#...#
|
||||
.....#.#..#..#..###.#...###.#..
|
||||
.#.#.##.#..#.#..#...#..#.......
|
||||
..#.....#....#.##.##.##.......#
|
||||
.#..##....###...#..............
|
||||
#....#...#.#.......#....##.#...
|
||||
....#.#..##.#....#..#.#....#.#.
|
||||
#.........##...#.#.............
|
||||
#.#.......##.....#...##..##.#.#
|
||||
.......#....#..##...#..#######.
|
||||
.#.#...##........#..#.....#.#..
|
||||
.#.......#..#......#.##.##...##
|
||||
.........#............#....#..#
|
||||
.#......#...##...##...#....###.
|
||||
.........#...#.#.###.......#...
|
||||
###.#..#.#.#.#......##...#.#...
|
||||
.#.........##.#....###....#.#..
|
||||
#.#....#..#.##.#..#....##...#..
|
||||
###.#...#..#..##........#.###..
|
||||
.....#....#..#........#..#.##.#
|
||||
..#.....##......#....#..#.#.#..
|
||||
.#.........#.....#.....#.......
|
||||
......#....#.###..#.#....#....#
|
||||
..#.#..#.#.###.........#..#..#.
|
||||
..#..#.#.#.........#....##.#.#.
|
||||
#.......#........##...##....#..
|
||||
##..#..#...###...#..##..#..#.#.
|
||||
##..#..#....#.#..##..#..#.#..#.
|
||||
..##.....##.#..#.#........###..
|
||||
..#.#..#..##........#...#....##
|
||||
.##..#....##..#..#..#..#.#....#
|
||||
#....#.....##........#.....#.##
|
||||
......#....#.#..#......#.##....
|
||||
.......#..#..#......##.........
|
||||
......#...#..##.....#......#..#
|
||||
#..#..#....##....#........##..#
|
||||
##....#...#.#.....#####........
|
||||
...#.#..#.#.##.#.##..##...#....
|
||||
..#..#..#..#..#....#..#..##...#
|
||||
.#.....#....##.##....##.....#..
|
||||
#...#.....#.....#.#...#.#....#.
|
||||
.###...#..##....#..#...#.###...
|
||||
....#..##..#.......#.##.##..###
|
||||
#.......##.....#.......#.#...##
|
||||
#.....#.#.#....#.#......#.#.#..
|
||||
..##.....#..###......##........
|
||||
.....#...#..##....#......#.....
|
||||
#..#..#....#.#...#..###.......#
|
||||
.....#.....#....#..#...#.#..##.
|
||||
#####........#...#..#..##..#.#.
|
||||
.#..#...#.##....#.#..#......###
|
||||
#.###.#..#.....##..##....#...#.
|
||||
.#...#.#####....##..........##.
|
@ -0,0 +1,25 @@
|
||||
const fs = require("fs");
|
||||
|
||||
function setCharAt(str, index, chr) {
|
||||
if (index > str.length - 1) return str;
|
||||
return str.substring(0, index) + chr + str.substring(index + 1);
|
||||
}
|
||||
|
||||
const input = fs.readFileSync("input", "utf-8");
|
||||
const rows = input.split("\n");
|
||||
|
||||
console.log(rows.slice(0, 10));
|
||||
|
||||
let countTrees = 0;
|
||||
|
||||
let curX = 0;
|
||||
for (let curY = 1; curY < rows.length; curY++) {
|
||||
curX = (curX + 3) % rows[curY].length;
|
||||
const row = rows[curY];
|
||||
const field = rows[curY][curX];
|
||||
rows[curY] = setCharAt(row, curX, field === "#" ? "X" : "O");
|
||||
if (field === "#") countTrees++;
|
||||
}
|
||||
|
||||
console.log(rows.slice(0, 10));
|
||||
console.log(countTrees);
|
@ -0,0 +1,35 @@
|
||||
const fs = require("fs");
|
||||
|
||||
const input = fs.readFileSync("input", "utf-8").trim();
|
||||
const rows = input.split("\n");
|
||||
|
||||
console.log("Num of rows:", rows.length);
|
||||
console.log("Column width:", rows[0].length);
|
||||
|
||||
function run(dX, dY) {
|
||||
let countTrees = 0;
|
||||
let curX = 0;
|
||||
for (let curY = dY; curY < rows.length; curY += dY) {
|
||||
curX = (curX + dX) % rows[curY].length;
|
||||
const field = rows[curY][curX];
|
||||
if (field === "#") countTrees++;
|
||||
}
|
||||
return countTrees;
|
||||
}
|
||||
|
||||
const runs = [
|
||||
[1, 1],
|
||||
[3, 1],
|
||||
[5, 1],
|
||||
[7, 1],
|
||||
[1, 2],
|
||||
];
|
||||
|
||||
let solution = 1;
|
||||
for (const args of runs) {
|
||||
const countTrees = run(...args);
|
||||
console.log(`Right: ${args[0]}, down: ${args[1]}: Trees: ${countTrees}`);
|
||||
solution *= countTrees;
|
||||
}
|
||||
console.log("Solution:");
|
||||
console.log(solution);
|
Loading…
Reference in New Issue