diff options
author | kaiwu <kaiwu2004@gmail.com> | 2022-03-15 09:29:28 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2022-03-15 09:29:28 +0800 |
commit | 8c0bc49502ee9101d3f761cd791ebe770012d26d (patch) | |
tree | 7cd518ca5d5f3ce679a408824a821de4f038146d /src/2015/day1/aoc.cpp | |
parent | 1b7948bab0ae9b23cdb0693e5590205d177bee13 (diff) | |
download | advent-of-code-8c0bc49502ee9101d3f761cd791ebe770012d26d.tar.gz advent-of-code-8c0bc49502ee9101d3f761cd791ebe770012d26d.zip |
day1
Diffstat (limited to 'src/2015/day1/aoc.cpp')
-rw-r--r-- | src/2015/day1/aoc.cpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/2015/day1/aoc.cpp b/src/2015/day1/aoc.cpp index 2263558..4a4d4fc 100644 --- a/src/2015/day1/aoc.cpp +++ b/src/2015/day1/aoc.cpp @@ -5,9 +5,38 @@ namespace aoc2015 { int day1(line_view lv) { int level = 0; for (size_t i = 0; i < lv.length; ++i) { - level += lv.line[i] == '(' ? 1 : -1; + switch (lv.line[i]) { + case '(': + level += 1; + break; + case ')': + level += -1; + break; + default: + break; + } } return level; } +int day1(line_view lv, int target) { + int level = 0; + for (size_t i = 0; i < lv.length; ++i) { + switch (lv.line[i]) { + case '(': + level += 1; + break; + case ')': + level += -1; + break; + default: + break; + } + if (level == target) { + return i + 1; + } + } + return -1; +} + } // namespace aoc2015 |