aboutsummaryrefslogtreecommitdiff
path: root/src/2015/day1/aoc.cpp
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2022-03-15 09:29:28 +0800
committerkaiwu <kaiwu2004@gmail.com>2022-03-15 09:29:28 +0800
commit8c0bc49502ee9101d3f761cd791ebe770012d26d (patch)
tree7cd518ca5d5f3ce679a408824a821de4f038146d /src/2015/day1/aoc.cpp
parent1b7948bab0ae9b23cdb0693e5590205d177bee13 (diff)
downloadadvent-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.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