From cbc075544cc8036a72a2f2c489de09f2fe674dff Mon Sep 17 00:00:00 2001 From: Blizzard Finnegan Date: Thu, 9 Dec 2021 03:54:29 -0500 Subject: [PATCH] Finish Day5Part1; start Part 2 --- day5/data/testInput.txt | 10 ++++ day5/day5Part1 | Bin 0 -> 93376 bytes day5/day5Part1.cpp | 61 ++++++++++++++++++++++ day5/day5Part2 | Bin 0 -> 93896 bytes day5/day5Part2.cpp | 101 +++++++++++++++++++++++++++++++++++++ day5/part2Instructions.txt | 23 +++++++++ 6 files changed, 195 insertions(+) create mode 100644 day5/data/testInput.txt create mode 100755 day5/day5Part1 create mode 100644 day5/day5Part1.cpp create mode 100755 day5/day5Part2 create mode 100644 day5/day5Part2.cpp create mode 100644 day5/part2Instructions.txt diff --git a/day5/data/testInput.txt b/day5/data/testInput.txt new file mode 100644 index 0000000..b258f68 --- /dev/null +++ b/day5/data/testInput.txt @@ -0,0 +1,10 @@ +0,9 -> 5,9 +8,0 -> 0,8 +9,4 -> 3,4 +2,2 -> 2,1 +7,0 -> 7,4 +6,4 -> 2,0 +0,9 -> 2,9 +3,4 -> 1,4 +0,0 -> 8,8 +5,5 -> 8,2 diff --git a/day5/day5Part1 b/day5/day5Part1 new file mode 100755 index 0000000000000000000000000000000000000000..7242d12340923af2cd5640e75cd93320832f1634 GIT binary patch literal 93376 zcmeFa33L@z);3&K_tvd@Q<>)k0tqt&LJ|@ZW mm}H&=0)#LL0U;pb01BuvqTq;# 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 PJgI*m7yWn!H(l_5zR6#o literal 0 HcmV?d00001 diff --git a/day5/day5Part1.cpp b/day5/day5Part1.cpp new file mode 100644 index 0000000..659f05a --- /dev/null +++ b/day5/day5Part1.cpp @@ -0,0 +1,61 @@ +#include +#include +#include +using namespace std; + +int arrayDimension = 1000; +int inputLineCount = 500; +int main (void) +{ + int map[arrayDimension][arrayDimension] = {}; + string rawInput; + int x1[inputLineCount] = {}; + int x2[inputLineCount] = {}; + int y1[inputLineCount] = {}; + int y2[inputLineCount] = {}; + string comma = ","; + string arrow = " -> "; + int lineNumber = 0; + int overlapCount = 0; + ifstream readFile ("data/input.txt", ios::in); + + //Read file into arrays + while(getline(readFile, rawInput)) + { + size_t x1End = rawInput.find(comma); + x1[lineNumber] = stoi(rawInput.substr(0,x1End)); + size_t y1End = rawInput.find(arrow); + y1[lineNumber] = stoi(rawInput.substr(x1End+1,y1End)); + size_t x2End = rawInput.find(comma, y1End); + x2[lineNumber] = stoi(rawInput.substr(y1End+4,x2End)); + size_t y2End = rawInput.length()-1; + y2[lineNumber] = stoi(rawInput.substr(x2End+1,y2End)); + lineNumber++; + } + + for(int i=0;i1)overlapCount++; + } + } + + cout << overlapCount << endl; + + return 0; +} diff --git a/day5/day5Part2 b/day5/day5Part2 new file mode 100755 index 0000000000000000000000000000000000000000..df94b2557aeca90450c490dea58488497d33f175 GIT binary patch literal 93896 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 +#include +#include +using namespace std; + +int arrayDimension = 10;//1000; +int inputLineCount = 10;//500; +int main (void) +{ + int map[arrayDimension][arrayDimension] = {}; + string rawInput; + int x1[inputLineCount] = {}; + int x2[inputLineCount] = {}; + int y1[inputLineCount] = {}; + int y2[inputLineCount] = {}; + string comma = ","; + string arrow = " -> "; + int lineNumber = 0; + int overlapCount = 0; + ifstream readFile ("data/testInput.txt", ios::in); + + //Read file into arrays + while(getline(readFile, rawInput)) + { + size_t x1End = rawInput.find(comma); + x1[lineNumber] = stoi(rawInput.substr(0,x1End)); + size_t y1End = rawInput.find(arrow); + y1[lineNumber] = stoi(rawInput.substr(x1End+1,y1End)); + size_t x2End = rawInput.find(comma, y1End); + x2[lineNumber] = stoi(rawInput.substr(y1End+4,x2End)); + size_t y2End = rawInput.length()-1; + y2[lineNumber] = stoi(rawInput.substr(x2End+1,y2End)); + lineNumber++; + } + + for(int index=0;index1])overlapCount++; + } + cout << endl; + } + + cout << overlapCount << endl; + + return 0; +} diff --git a/day5/part2Instructions.txt b/day5/part2Instructions.txt new file mode 100644 index 0000000..eac5868 --- /dev/null +++ b/day5/part2Instructions.txt @@ -0,0 +1,23 @@ +Unfortunately, considering only horizontal and vertical lines doesn't give you the full picture; you need to also consider diagonal lines. + +Because of the limits of the hydrothermal vent mapping system, the lines in your list will only ever be horizontal, vertical, or a diagonal line at exactly 45 degrees. In other words: + + An entry like 1,1 -> 3,3 covers points 1,1, 2,2, and 3,3. + An entry like 9,7 -> 7,9 covers points 9,7, 8,8, and 7,9. + +Considering all lines from the above example would now produce the following diagram: + +1.1....11. +.111...2.. +..2.1.111. +...1.2.2.. +.112313211 +...1.2.... +..1...1... +.1.....1.. +1.......1. +222111.... + +You still need to determine the number of points where at least two lines overlap. In the above example, this is still anywhere in the diagram with a 2 or larger - now a total of 12 points. + +Consider all of the lines. At how many points do at least two lines overlap?