Add day1 data, tests, and solutions
This commit is contained in:
1 parent
9d72cb396d
commit
d773c7d3a9
3 files changed
+58
No files matched your search
@@ -0,0 +1,34 @@
|
||||
|
||||
def day1(data: str, part: int) -> int:
|
||||
"""
|
||||
day1 - Solve parts 1 and 2 for day Day1
|
||||
:param data: input data as a string
|
||||
:param part: part 1 or 2 of the puzzle
|
||||
:return: int
|
||||
"""
|
||||
floor: int = 0 # track the floor we are on
|
||||
in_basement: bool = False # have we made first entry into the basement?
|
||||
char_position: int = 0 # track character number we enter the basement
|
||||
|
||||
for char in data:
|
||||
if char == "(":
|
||||
floor += 1
|
||||
elif char == ")":
|
||||
floor -= 1
|
||||
if not in_basement:
|
||||
char_position += 1
|
||||
if floor < 0 and in_basement == False:
|
||||
in_basement = True
|
||||
|
||||
if part == 1:
|
||||
return floor
|
||||
elif part == 2:
|
||||
return char_position
|
||||
else:
|
||||
return -1
|
||||
|
||||
|
||||
|
||||
function_map = {
|
||||
"1": day1,
|
||||
}
|
||||
Reference in new issue
Block a user