aboutsummaryrefslogtreecommitdiff
path: root/src/2015/day1/aoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/2015/day1/aoc.cpp')
-rw-r--r--src/2015/day1/aoc.cpp31
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