42 lines
928 B
Python
42 lines
928 B
Python
|
|
|
|
|
|
def check_id(start, end):
|
|
false_ids = []
|
|
for id in range(int(start), int(end)+1):
|
|
id_str = str(id)
|
|
id_str_len = len(id_str)
|
|
if id_str_len % 2 == 0:
|
|
h1 = id_str[:id_str_len//2]
|
|
h2 = id_str[id_str_len//2:]
|
|
if h1 == h2:
|
|
false_ids.append(id)
|
|
|
|
return false_ids
|
|
|
|
|
|
|
|
def read_input(filename):
|
|
id_ranges = []
|
|
for line in open(filename).read().splitlines():
|
|
for id_range in line.split(","):
|
|
start = id_range.split("-")[0]
|
|
end = id_range.split("-")[1]
|
|
|
|
id_ranges.append((start,end))
|
|
return id_ranges
|
|
|
|
|
|
# filename = "day02/example_input" # 1227775554
|
|
filename = "day02/input" # 23560874270
|
|
id_ranges = read_input(filename)
|
|
|
|
|
|
adding = 0
|
|
for id_range in id_ranges:
|
|
for false_id in check_id(id_range[0], id_range[1]):
|
|
adding += false_id
|
|
|
|
|
|
print(f"Added total of false IDs: {adding}")
|