diff options
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 |