diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..930ff05 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.tcc": "cpp" + } +} \ No newline at end of file diff --git a/2/puzzle2 b/2/puzzle2 index 7635b57..a0eea18 100755 Binary files a/2/puzzle2 and b/2/puzzle2 differ diff --git a/2/puzzle2.cpp b/2/puzzle2.cpp index 9fd029e..018eccb 100644 --- a/2/puzzle2.cpp +++ b/2/puzzle2.cpp @@ -8,9 +8,12 @@ using namespace std; -int main(){ +enum Direction { + UP, + DOWN +}; - list currntlevels{}; +int main(){ string line; int safeReports = 0; @@ -18,16 +21,44 @@ int main(){ while (getline(puzzle, line)) { istringstream lineStream(line); - string number; - cout << "{"; - while (getline(lineStream, number, ' ')) { - cout << number<<"|"; + string numberString; + list currentLevels; + while (getline(lineStream, numberString, ' ')) { + int number = stoi(numberString); + currentLevels.push_back(number); + } + + int numOfLevelsInLine = currentLevels.size(); + int numOfLevelsProcessed = 0; + + //need to pull the first one to have something to compare to + enum Direction dir; + int prevlevel = currentLevels.front(); + currentLevels.pop_front(); + numOfLevelsProcessed++; + if (prevlevel - currentLevels.front()>0){ + dir = UP; + } else if (prevlevel - currentLevels.front()< 0){ + dir = DOWN; + } else { + break; + } + + + for (int level = 0; !currentLevels.empty();level=currentLevels.front()){ + if (abs(prevlevel-level)>3) {currentLevels.clear();break;} + if(prevlevel-level==0){ currentLevels.clear();break;} + if(dir==UP&&(prevlevel-currentLevels.front())<0) {currentLevels.clear();break;} + if(dir==DOWN&&(prevlevel-currentLevels.front()>0)) {currentLevels.clear();break;} + + prevlevel=currentLevels.front(); + currentLevels.pop_front(); + + if(numOfLevelsProcessed==numOfLevelsInLine){ + safeReports++; + } } - cout << "}"; } -/* - for (line; !puzzle.eof();puzzle.getline(line,'\n')) { - cout << line << "\n"; - } -*/ +cout << safeReports; +puzzle.close(); } \ No newline at end of file