Finish day 2
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import "dart:convert";
|
||||
import "dart:io";
|
||||
|
||||
import "package:args/command_runner.dart";
|
||||
@@ -34,7 +33,10 @@ class Day2Command extends Command {
|
||||
|
||||
var inputFile = File(filePath);
|
||||
var openFile = await inputFile.readAsString();
|
||||
var part1Answer = openFile
|
||||
|
||||
RegExp exp = RegExp(r'^([0-9]+)\1+$');
|
||||
|
||||
var ids = openFile
|
||||
.trim()
|
||||
.split(',')
|
||||
.expand((range) {
|
||||
@@ -49,15 +51,26 @@ class Day2Command extends Command {
|
||||
List.generate(to - from + 1, (i) => i + from);
|
||||
return createRange(numRange[0], numRange[1]);
|
||||
})
|
||||
.map((id) => id.toString())
|
||||
.map((id) => id.toString());
|
||||
|
||||
var part1Answer = ids
|
||||
.where((id) => id.length.isEven)
|
||||
.where((id) {
|
||||
var first_half = id.substring(0, (id.length / 2).floor());
|
||||
var second_half = id.substring((id.length / 2).floor(), id.length);
|
||||
return first_half == second_half;
|
||||
var firstHalf = id.substring(0, (id.length / 2).floor());
|
||||
var secondHalf = id.substring((id.length / 2).floor(), id.length);
|
||||
return firstHalf == secondHalf;
|
||||
})
|
||||
.map((id) => int.parse(id))
|
||||
.reduce((id1, id2) => id1 + id2);
|
||||
print("Part 1 Answer: $part1Answer");
|
||||
|
||||
var part2Answer = ids
|
||||
.where((id) => exp.hasMatch(id))
|
||||
.map((id) {
|
||||
//print(id);
|
||||
return int.parse(id);
|
||||
})
|
||||
.reduce((id1, id2) => id1 + id2);
|
||||
print("Part 2 Answer: $part2Answer");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user