mirror of
https://github.com/HenkKalkwater/aoc-2020
synced 2024-11-22 11:05:18 +00:00
Day 3, part 1
This commit is contained in:
parent
b21ca2df4a
commit
52629702c8
|
@ -7,13 +7,15 @@ import std.getopt;
|
||||||
|
|
||||||
import day1;
|
import day1;
|
||||||
import day2;
|
import day2;
|
||||||
|
import day3;
|
||||||
import dayutil;
|
import dayutil;
|
||||||
|
|
||||||
immutable string progName = "aoc-2020";
|
immutable string progName = "aoc-2020";
|
||||||
|
|
||||||
void function(string[])[] programs = [
|
void function(string[])[] programs = [
|
||||||
&day1.run,
|
&day1.run,
|
||||||
&day2.run
|
&day2.run,
|
||||||
|
&day3.run,
|
||||||
];
|
];
|
||||||
|
|
||||||
void printUsage(string name) {
|
void printUsage(string name) {
|
||||||
|
|
31
source/day3.d
Normal file
31
source/day3.d
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
import std.algorithm;
|
||||||
|
import std.format;
|
||||||
|
import std.range;
|
||||||
|
import std.stdio;
|
||||||
|
import std.uni;
|
||||||
|
|
||||||
|
void run(string[] args) {
|
||||||
|
ulong count = stdin.byLine.countTrees;
|
||||||
|
writeln(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
ulong countTrees(Range)(Range lines) if (isInputRange!Range) {
|
||||||
|
return lines.enumerate.filter!(x => (x.value[x.index * 3 % x.value.length] == '#')).count;
|
||||||
|
}
|
||||||
|
|
||||||
|
unittest {
|
||||||
|
string[] field = [
|
||||||
|
"..##.........##.........##.........##.........##.........##.......",
|
||||||
|
"#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..#...#...#..",
|
||||||
|
".#....#..#..#....#..#..#....#..#..#....#..#..#....#..#..#....#..#.",
|
||||||
|
"..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#",
|
||||||
|
".#...##..#..#...##..#..#...##..#..#...##..#..#...##..#..#...##..#.",
|
||||||
|
"..#.##.......#.##.......#.##.......#.##.......#.##.......#.##.....",
|
||||||
|
".#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#",
|
||||||
|
".#........#.#........#.#........#.#........#.#........#.#........#",
|
||||||
|
"#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...#.##...#...",
|
||||||
|
"#...##....##...##....##...##....##...##....##...##....##...##....#",
|
||||||
|
".#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#"
|
||||||
|
];
|
||||||
|
assert(field.countTrees == 7);
|
||||||
|
}
|
Loading…
Reference in a new issue