-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSanta.h
47 lines (41 loc) · 1.14 KB
/
Santa.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//
// Created by RMDY on 14/11/2024.
//
#ifndef AOC_H
#define AOC_H
class Santa {
public:
int calculateFloorBasedOnInput(string input);
int calculateFirstEncounterWithBasement(string input);
};
int Santa::calculateFloorBasedOnInput(string input) {
int count_of_opening = 0;
int count_of_closing = 0;
for (int counter = 0; counter < input.length(); counter++) {
char i = input[counter];
if (i == '(') {
count_of_opening++;
} else if (i == ')') {
count_of_closing++;
}
}
return count_of_opening - count_of_closing;
}
int Santa::calculateFirstEncounterWithBasement(string input) {
int count_of_opening = 0;
int count_of_closing = 0;
const int BASEMENT = -1;
for (int counter = 0; counter < input.length(); counter++) {
char i = input[counter];
if (i == '(') {
count_of_opening++;
} else if (i == ')') {
count_of_closing++;
}
if (count_of_closing > count_of_opening && count_of_opening - count_of_closing == BASEMENT) {
return counter + 1;
}
}
return -1;
}
#endif //AOC_H