diff --git a/day01/binTree.py b/day01/binTree.py new file mode 100644 index 0000000..fa83859 --- /dev/null +++ b/day01/binTree.py @@ -0,0 +1,87 @@ +class BinTree: + def __init__(self): + self.data = [] + + def _print_entries(self): + for date in self.data: + print(f"{date}") + + def add(self, number): + if len(self.data) == 0: + self.data.insert(0, number) + return + if len(self.data) == 1: + if self.data[0] > number: + self.data.insert(0, number) + elif self.data[0] < number: + self.data.append(number) + return + + #at least two elements are in the array + ret_val = self._binary_search_(number, len(self.data) - 1, 0) + if ret_val[0] == True: + return #entry is already in set + elif ret_val[0] == False: + self.data.insert(ret_val[1], number) + + + def __contains__(self, number): + if len(self.data) > 1: + return self._binary_search_(number, len(self.data) - 1, 0)[0] + elif len(self.data) == 1: + return self.data[0] == number + else: + return False + + def _binary_search_(self, search_value, upper_bound, lower_bound): + """returns a tuple for the searched object. First entry is if the object is in the set, + second entry is the point where it was found or where it should be inserted""" + #cornercase for adjacent objects + if lower_bound == upper_bound - 1: + #is in list + if self.data[lower_bound] == search_value: + return True, lower_bound + elif self.data[upper_bound] == search_value: + return True, upper_bound + else: #not found, search where it should be inserted + if search_value > self.data[upper_bound]: + return False, upper_bound + 1 + elif search_value < self.data[lower_bound]: + return False, lower_bound - 1 + else: + return False, upper_bound + + #general binary search function + middle = (int)((upper_bound + lower_bound) / 2) + middle_data = self.data[middle] + if middle_data == search_value: + return True, middle + elif middle_data < search_value: + return self._binary_search_(search_value=search_value, upper_bound=upper_bound, lower_bound=middle) + elif middle_data > search_value: + return self._binary_search_(search_value=search_value, upper_bound=middle, lower_bound=lower_bound) + + +if __name__ == "__main__": + + bt = BinTree(print_debug=True) + + for i in range(1,35,3): + bt.add(i) + + bt.add(12) + bt.add(13) + bt.add(14) + + bt._print_entries() + + print(f"31? should be true: {bt.__contains__(31)}") + print(f"30? should be false: {bt.__contains__(30)}") + + + + + + + + \ No newline at end of file diff --git a/day01/day01.py b/day01/day01.py index 9f69ffd..17e9eb2 100644 --- a/day01/day01.py +++ b/day01/day01.py @@ -1,7 +1,10 @@ - from typing import List; import os; import time; +import matplotlib.pyplot as plt +import numpy as np +from binTree import BinTree + def read_input(file_name): current_path = os.path.dirname(__file__) @@ -17,12 +20,54 @@ def read_input(file_name): class Frequency: def __init__(self): - self.currentFrequency = 0 + self.currentFrequency_1 = 0 + self.currentFrequency_2 = 0 + self.uniqueFrequencies = list() - def calibrate(self, num: int): - pass + def calibrate_task1(self, num): + self.currentFrequency_1 += num + def calibrate_task2(self, num): + self.currentFrequency_2 += num + if self.currentFrequency_2 in self.uniqueFrequencies: + return True + self.uniqueFrequencies.append(self.currentFrequency_2) + return None # put your inputs file next to this file! -lines = read_input('input.txt'); -# solve the problem here! \ No newline at end of file +lines = read_input('input1.txt') +# solve the problem here! + +f = Frequency() + +for line in lines: + f.calibrate_task1(line) +print(f"Task 1: frq {f.currentFrequency_1}") + + +retVal = None +times = [] +start_time = time.time() +last_time = None + +while retVal is None: + for line in lines: + retVal = f.calibrate_task2(line) + if retVal is True: + break + if last_time is not None: + times.append(last_time - start_time) + start_time = last_time + last_time = time.time() + else: + last_time = time.time() + +x = range(len(times)) +plt.plot(x, times) +plt.title('Runtime complexity') +plt.xlabel('X axis') +plt.ylabel('Elapsed time') + +plt.savefig("plot1.png") + +#print(f"Task 2: Current is {f.currentFrequency_2}, uniqueFrqs: {len(f.uniqueFrequencies)}") \ No newline at end of file diff --git a/day01/input1.txt b/day01/input1.txt new file mode 100644 index 0000000..760a123 --- /dev/null +++ b/day01/input1.txt @@ -0,0 +1,1014 @@ ++7 +-5 +-9 +-1 +-3 ++7 +-8 +-17 +-4 +-18 +-15 ++18 +-11 +-3 +-15 ++6 ++17 +-3 ++19 ++6 ++4 +-15 ++18 +-14 ++8 +-11 +-7 +-15 ++19 +-1 ++10 ++18 +-1 ++5 +-12 ++11 +-5 ++17 ++9 +-12 ++7 ++19 +-9 ++17 ++12 +-15 +-12 ++11 ++14 +-16 +-13 ++7 ++5 +-6 ++20 +-1 ++8 +-13 +-6 +-9 ++4 ++23 +-5 +-5 +-19 ++20 +-6 ++21 +-4 ++12 ++10 +-1 ++16 ++15 +-12 +-17 +-3 ++9 +-19 +-3 ++7 +-5 +-7 +-8 ++2 ++7 ++16 +-2 ++13 ++13 ++20 +-15 +-10 +-5 +-1 ++7 +-15 ++18 ++3 +-1 ++16 +-13 +-1 +-10 ++15 +-17 +-18 +-11 ++1 ++2 ++7 ++12 +-14 ++22 ++14 ++5 +-13 +-16 ++25 ++20 ++2 ++10 ++16 +-19 +-1 +-7 ++3 ++3 ++10 ++4 ++16 ++12 ++8 ++7 +-12 +-1 +-7 ++19 +-4 ++11 ++18 +-15 ++12 ++11 +-10 +-7 ++12 +-16 ++2 +-5 +-5 ++14 ++9 ++14 ++19 ++11 ++6 ++13 ++14 ++14 +-6 +-9 +-9 +-11 +-5 +-5 ++15 +-7 ++1 +-17 ++7 +-15 +-7 ++12 +-6 +-13 +-19 ++10 ++5 +-1 ++6 ++20 +-12 +-7 ++18 +-17 +-15 +-11 ++16 ++12 ++13 +-21 ++9 ++9 ++11 +-2 +-13 +-1 +-6 ++4 +-16 ++2 +-5 ++23 +-13 +-12 +-19 ++2 ++2 +-12 +-6 ++1 +-21 +-16 +-18 ++5 ++18 ++4 +-11 ++17 ++3 ++6 +-1 +-4 +-18 ++2 +-4 +-3 +-15 +-6 +-1 +-13 ++10 ++15 ++6 ++20 ++18 +-9 ++11 +-3 +-18 +-16 +-1 ++20 +-7 ++19 +-24 ++20 ++12 ++22 +-15 ++24 +-21 ++3 ++13 +-15 ++23 ++37 ++9 ++18 ++3 +-11 ++20 ++4 ++15 ++14 +-5 ++7 +-6 ++9 +-2 +-9 ++12 ++11 +-18 ++8 +-15 ++16 +-7 ++11 ++11 ++1 +-8 ++6 +-8 ++18 +-21 ++9 +-7 ++12 ++4 ++13 ++15 ++5 +-10 +-4 ++10 +-3 ++24 +-14 ++10 ++7 +-11 +-20 ++19 ++6 ++7 ++12 ++1 ++1 +-7 ++1 ++20 ++25 +-14 +-20 +-15 +-19 +-23 +-14 ++9 +-30 +-13 +-13 +-20 ++11 ++15 +-3 +-9 ++13 +-12 +-10 +-9 ++2 ++19 +-8 ++3 +-6 ++18 +-5 ++15 +-16 +-10 +-15 +-6 +-5 +-10 ++18 +-16 ++25 +-15 +-18 ++12 ++19 +-12 ++4 ++6 ++9 +-27 +-60 +-48 +-4 ++2 +-17 +-12 ++11 +-18 +-9 ++5 +-6 +-28 ++3 +-13 ++35 ++5 ++25 +-22 +-35 +-15 +-27 +-10 +-9 +-64 +-9 ++10 +-3 +-25 ++9 +-14 +-83 ++11 ++61 +-8 +-8 ++12 ++50 +-20 +-165 ++7 +-65 +-3 +-5 ++281 ++56 ++121 +-55464 ++8 +-9 +-15 +-3 +-16 ++10 +-11 ++9 ++5 ++4 ++7 +-20 +-15 +-1 +-10 +-11 ++12 +-11 ++16 ++21 +-3 ++4 ++1 +-9 +-2 +-6 +-7 ++9 +-11 +-1 +-4 ++15 +-4 +-13 +-1 +-1 ++10 +-17 +-15 +-17 ++11 ++9 ++3 +-9 ++13 ++2 +-3 +-17 ++19 +-16 +-4 ++8 +-3 ++5 +-12 ++16 ++8 +-15 +-19 +-8 +-3 +-13 +-5 +-16 ++3 ++2 ++10 +-5 ++2 ++14 ++10 ++8 +-11 ++2 +-6 ++9 ++8 ++7 ++6 +-3 +-6 +-11 ++12 +-23 +-11 ++13 ++22 ++18 ++21 ++18 ++19 ++6 +-3 ++5 ++17 ++7 +-4 ++13 +-5 ++13 ++18 ++10 +-7 ++12 ++11 +-10 +-7 ++14 ++6 +-16 ++20 ++16 +-1 ++6 +-14 ++15 +-2 +-25 ++13 ++39 +-11 +-9 ++34 +-60 +-14 +-22 +-27 +-12 +-10 ++3 ++20 ++3 ++8 ++7 +-10 +-14 ++12 ++9 +-6 ++8 +-19 +-10 +-16 +-14 ++16 +-4 +-20 ++10 +-17 +-9 +-15 ++16 ++11 +-20 +-11 +-14 +-28 +-16 +-2 ++21 +-18 ++17 ++5 +-6 +-18 +-15 +-14 ++15 ++11 +-16 +-5 ++19 +-12 +-15 +-1 ++11 +-16 ++11 ++15 +-19 ++3 +-9 +-2 +-9 ++1 +-5 ++7 ++11 ++24 ++14 ++4 ++17 +-46 +-5 +-17 +-8 +-10 +-12 +-5 ++10 ++3 ++9 ++14 ++7 +-6 +-16 ++17 +-18 ++14 +-10 ++18 +-17 +-11 +-17 +-12 +-15 +-2 +-4 +-9 +-13 ++10 ++4 +-3 +-9 +-5 ++7 ++11 +-17 +-21 ++9 ++17 ++17 ++13 ++12 +-3 +-3 ++18 +-5 ++12 ++10 ++3 ++10 ++24 ++21 ++13 ++22 ++19 ++72 ++7 ++11 +-15 +-5 ++6 ++83 ++8 +-153 ++24 ++8 ++39 ++43 +-265 +-17 ++18 +-4 +-12 ++7 +-4 +-2 ++18 ++12 ++11 +-7 +-9 +-4 ++10 ++15 ++25 +-20 +-16 +-22 +-21 +-11 ++2 ++13 ++20 ++10 ++12 +-6 +-23 ++3 +-17 +-7 ++15 +-19 +-10 +-8 +-2 +-8 +-2 +-6 ++5 ++7 +-5 +-3 +-3 +-15 ++4 ++5 ++15 +-12 +-16 +-13 ++15 +-4 +-9 ++12 +-8 ++2 ++19 +-4 ++1 +-23 +-9 +-10 +-2 ++5 +-10 ++2 +-3 +-10 +-15 ++19 +-7 +-9 +-17 ++10 +-18 ++16 +-14 ++7 +-10 ++12 ++3 +-7 ++12 ++21 +-5 +-11 +-7 ++3 ++11 +-16 ++15 ++14 ++17 ++8 +-2 +-1 ++19 ++10 ++11 ++22 +-1 ++18 ++12 +-19 +-5 ++17 +-4 +-4 ++19 +-46 +-22 +-11 ++19 +-12 +-19 +-11 +-17 +-15 +-42 +-11 +-4 ++20 ++6 +-38 ++8 +-58 ++5 +-11 +-60 +-7 +-61 +-5 ++36 +-82 +-3 +-35 +-11 ++33 +-51 +-17 ++9 +-277 ++251 +-55001 ++3 +-11 ++1 ++13 ++3 +-15 ++1 ++2 ++7 +-16 ++13 ++9 ++18 +-1 +-10 ++5 ++17 +-9 ++2 ++10 ++18 ++19 ++3 +-9 +-18 +-4 ++6 +-13 ++6 ++19 ++15 ++14 +-13 ++17 ++14 +-3 +-7 +-16 +-9 ++16 +-5 +-12 ++19 ++16 +-15 ++12 +-5 ++7 +-20 +-6 +-1 ++6 +-7 ++17 ++22 ++7 +-13 ++8 ++16 ++14 +-18 ++12 +-4 +-1 ++10 +-15 ++14 ++11 ++9 +-14 +-3 ++10 +-8 +-8 +-16 ++18 +-4 ++17 +-3 +-22 +-18 +-20 ++19 +-6 ++14 +-1 ++4 ++15 +-4 ++24 +-31 +-10 ++7 +-24 +-1 ++8 ++4 +-21 ++8 +-4 +-16 ++2 ++4 +-18 ++6 +-5 +-19 +-6 +-5 +-13 ++17 ++15 +-5 ++4 ++2 +-19 ++12 +-16 +-8 +-11 ++3 ++14 +-5 ++8 ++17 +-5 +-11 ++23 ++2 +-18 +-30 +-11 ++5 ++15 +-14 +-17 ++13 ++19 ++2 +-15 +-7 +-18 +-14 +-3 +-2 +-6 +-12 ++1 ++20 ++5 ++2 +-3 +-20 +-3 ++9 +-15 +-4 +-6 ++2 ++3 ++19 ++17 +-3 +-18 +-17 +-20 ++14 ++2 +-18 ++13 ++13 +-21 +-13 +-4 +-18 ++11 ++1 ++3 ++10 +-15 +-4 +-7 +-2 +-16 +-11 +-10 +-5 ++6 ++1 +-12 +-8 +-5 +-10 ++1 ++5 ++15 +-14 +-5 +-3 +-14 ++19 ++111653 \ No newline at end of file diff --git a/day02/day02.py b/day02/day02.py index 7ea619d..7311393 100644 --- a/day02/day02.py +++ b/day02/day02.py @@ -12,6 +12,48 @@ def read_input(file_name): print(f"An error occurred: {e}") return lines -#a -lines = read_input('input.txt') -# solve the problem here! \ No newline at end of file + +lines = read_input('input1.txt') +# solve the problem here! + +count_2_same = 0 +count_3_same = 0 + +for line in lines: + char_count = {} + + for char in line: + if char in char_count: + char_count[char] += 1 + else: + char_count[char] = 1 + + if 2 in char_count.values(): + count_2_same += 1 + if 3 in char_count.values(): + count_3_same += 1 + +result = count_2_same * count_3_same + +print(f"Result: {result}") + +for i in range(len(lines)): + for j in range(i + 1, len(lines)): + err_cnt = 0 + idx_rem = 0 + for idx in range(len(lines[0])): + if lines[i][idx] != lines [j][idx]: + err_cnt += 1 + idx_rem = idx + #endif + if err_cnt == 1: + print(f"Line {i} and {j} are right. Wrong letter at {idx_rem} is {lines[i][idx_rem]}") + print(f"lines were:\n{lines[i]}\n{lines[j]}") + + output_line = ''.join([char for char_idx, char in enumerate(lines[i]) if char_idx != idx_rem]) + print(f"Pass:\n{output_line}") + #endfor idx + #endfor j + + + diff --git a/day02/day02_task2.py b/day02/day02_task2.py new file mode 100644 index 0000000..7975d07 --- /dev/null +++ b/day02/day02_task2.py @@ -0,0 +1,39 @@ +from typing import List; +import time +import os; + +def read_input(file_name): + current_path = os.path.dirname(__file__) + lines = [] + try: + with open(os.path.join(current_path, file_name), 'r') as file: + for line in file: + lines.append(line.strip()) # Remove any leading or trailing whitespace + except Exception as e: + print(f"An error occurred: {e}") + return lines + + +lines = read_input('input2.txt') +# solve the problem here! + +count_2_same = 0 +count_3_same = 0 + +for line in lines: + char_count = {} + + for char in line: + if char in char_count: + char_count[char] += 1 + else: + char_count[char] = 1 + + if 2 in char_count.values(): + count_2_same += 1 + if 3 in char_count.values(): + count_3_same += 1 + +result = count_2_same * count_3_same + +print(f"Result: {result}") diff --git a/day02/input1.txt b/day02/input1.txt new file mode 100644 index 0000000..a008cfa --- /dev/null +++ b/day02/input1.txt @@ -0,0 +1,250 @@ +mvgowxqubnhaefjslkjlrptzyi +pvgowlqubnhaefmslkjdrpteyi +ovgowoqubnhaefmslkjnrptzyi +cvgowxqubnrxefmslkjdrptzyo +cvgowxqubnhaefmsokjdrprzyf +cvgowxqubnhjeflslkjgrptzyi +cvgowxqvbnhaefmslkhdrotzyi +hvgowxqmbnharfmslkjdrptzyi +cvgoaxqubqhaefmslkjdrutzyi +cvxowxqdbnhaefmslkjdgptzyi +cvgikxqubnhaefmslkjdrptzyz +cvgnwxqubnhaqfjslkjdrptzyi +cqgowxqubnhaecmslkjgrptzyi +cvpowxqucnhaefmslkjdrptzyz +fvuoexqubnhaefmslkjdrptzyi +svgowxqubnhaefmsvkjdrttzyi +cvgowxqubnhaefmblkjdfpbzyi +cvkoyxqubnhaefsslkjdrptzyi +bvgowxqublhaefmslkjdrptzfi +xvgewxqubnhaefmslkjdrztzyi +cvgowxqubzhaefmslkkrrptzyi +cvgowxqubnhaefmslkudruuzyi +cvgowxqubnhaefmvlkjdrptwyl +cvgoyxqubnhaefmslkjvrotzyi +cvgowxoubnhaewmslkjdrpbzyi +cvgowxgubnhaefmslijdrptzxi +lvgowxqkbnhaefmslkjdrptzqi +xvgowxqubyhaefmflkjdrptzyi +wvnowxgubnhaefmslkjdrptzyi +cvgowxguwnhaefhslkjdrptzyi +cvgowfquxnhaefmdlkjdrptzyi +cvgywxqubnuaefmsldjdrpfzyi +cvkowxqzbrhaefmslkjdrptzyi +cviowxzubnhaefmslkjdrptqyi +cvgowxqubnhaefmsozjdrptzyc +cvglwxuubnhaewmslkjdrptzyi +cvgowxquknhaebmsfkjdrptzyi +vvgowxqubnhaesmslkjdrptzri +cvgowxoubndaefmslkjdrftzyi +cvgowxqubghaefmslkjdeptzyw +cvgowxqubnhaetmhlkjdrpvzyi +cvgowmquunhaefmslkjdrptzyt +cvgooxqpbniaefmslkjdrptzyi +cvgowxqubnhaeumslkjdkptiyi +cvgrwxqsbnhaemmslkjdrptzyi +cvrowxqubnhaefmslkjdrctcyi +dvgcwxqubnhaefmslkjdrptzyq +cugowxqubnhasfmmlkjdrptzyi +cwgowxqobzhaefmslkjdrptzyi +cvgowxquwnhaefmulkjdrptbyi +nvgowxqmbnhaefmslyjdrptzyi +cvgowxqubniakvmslkjdrptzyi +cvyowxqubnhaefmslejdrptzyx +cvgobxqubghaefeslkjdrptzyi +cvgowxiubnhaebmslkjdfptzyi +cvgosbqubnhaefmslkvdrptzyi +cvgpwxqubnhaefvslkjdrptzyh +cvgowxqubnyaefmslgjdsptzyi +cvgowxqubnhaefmslkjdrprzzp +cvgowxqubwhaemmslkjdrpazyi +cvgowxqpbnhaemmslkjdrpczyi +cvgoqxqubnhaelmslkjdrptzye +cvgowxqubnhaefmslbjdrttzvi +cvgowxqubnhlefmslkvurptzyi +cvgowxqujngaefmslktdrptzyi +cvgowxqubnhaefmsckjdcwtzyi +cvcowxqubnhaetmslkjorptzyi +jvnowxqubnhaefmslkjdrptzyf +cygowxqkbnhaefmslejdrptzyi +cvmowxqubnhaefmslkjdritzoi +cvgowxqubnpaefmslkjdrpnnyi +cvgowxqubnhaefmolkjdrpnzyy +uvgowxoubnhaefmslkjdrptzvi +cvgowxbabehaefmslkjdrptzyi +cvgokxqubnhaefmsckjdrjtzyi +cvgoxwqubahaefmslkjdrptzyi +cvgowxqusnhaefmslijdrptyyi +cvgowxqubmhaeqmslkxdrptzyi +cvgouxhubnhaefmslkjdrjtzyi +cvgowxqubnhaefmslrjdqptzyk +cvgowxiublhaefsslkjdrptzyi +cvgowxqubnxgefmslkadrptzyi +ovgowxqugshaefmslkjdrptzyi +cvgowxquznhaeemslsjdrptzyi +cvkowxqubnhaeomslkjdeptzyi +cvgvwxqubxhaefmslkjdrptzyu +cvglwxqybnhaefmslkjdrptzyb +cvgowxqubnlfwfmslkjdrptzyi +cvaowxqubnhaefmslkjdrvtzbi +cvgowxqubnrmefaslkjdrptzyi +cvgowxqubnhaefmsnkjdfpwzyi +cvgawxqmbnhaefmsykjdrptzyi +chgowmqubnhaefmslkjdrptwyi +cogowxqubnhaefmslkjxrptzri +cvgohxqubnoaesmslkjdrptzyi +cvdowxqubnhaofmslkjdrpvzyi +vvgowrqubnhaefmslkjdrpthyi +cvgowxquknhuefmslkjdoptzyi +cvyowxeubnhaefmslhjdrptzyi +cvglwxqubnhaefmslkjdrptdyq +cvgowxqubnhaefmsikgdrptayi +cvgowxqubnhaefjhlkjdrpczyi +cvgzwxkubnhaefmslkjdjptzyi +cxgowxqubnhaefmslkjdrptwyy +cvgowxqubnhaefeslkjdrmqzyi +cvgowxvubnhaefmilijdrptzyi +cvgowxqzbthaeomslkjdrptzyi +cvgowhqubndaefmglkjdrptzyi +cvgowxvubnhaeamylkjdrptzyi +cvgowiqubnhgefmslkjdrctzyi +cvgowxqubchaefmslksdritzyi +cvgowxqubnhaefmsnkjdreyzyi +cvgowxqubihaefmslkgdrutzyi +cvgowxqjbnhaeamslkjdrptzwi +cvgowxzubnhaefmsxkjdrrtzyi +cvgowxqubyhaetmslnjdrptzyi +cvgowxquhnhaebmslkjdxptzyi +cvgowxqubnhanfmslujdxptzyi +cvgowxqublhnefaslkjdrptzyi +cvgmwxqtbnhaefmslkjsrptzyi +jvgowxqubnhaeamslkjdrpmzyi +cvgowxqubhiaefmsljjdrptzyi +svgowxqubnhaefmswkjdrpozyi +cvgowxqebnhaeqmslkjdiptzyi +cveowxqubnhayzmslkjdrptzyi +cvglwxqubnhaefmxlkjdiptzyi +cvgowkqubdhaefmszkjdrptzyi +cvgowxkxbnhaeffslkjdrptzyi +cugowxqubnnaefmslujdrptzyi +cqgowxwubnhaepmslkjdrptzyi +cvgowxqubnhayfmmlkjwrptzyi +cvgowxquenhaefmsskxdrptzyi +cvgowxqubnhiefmsrkjdtptzyi +mvgowxkubnhaefmjlkjdrptzyi +cvgowkquunhaefmglkjdrptzyi +cvgowxqubqhaexmslgjdrptzyi +jvgowxqubnhaefmslkjddptlyi +cvgiwxqubnhaefmslkjdpptmyi +czgowxqubntaevmslkjdrptzyi +cvgotmqubnhaefmslkjdrpazyi +cvgowxtubnhaefmslkqdtptzyi +cvbowxqhnnhaefmslkjdrptzyi +cvgowkqubshaefmstkjdrptzyi +cvgowqqrbnaaefmslkjdrptzyi +cvgoixqubnhaefmslkjdrpmryi +cvgoxxqubnhaeimsxkjdrptzyi +cvgowxqubzhaebmslkjyrptzyi +cjgewxqubnhaefsslkjdrptzyi +cvgowxqdbnkaefmslwjdrptzyi +cvgowxqzbnhaeamslkjdrftzyi +cvgoixqubnsaewmslkjdrptzyi +cvgswxqubnhaxfmslkjdrptzni +cvwowxmubnhgefmslkjdrptzyi +cvggwxqubnhaefmslqjdbptzyi +cvgzwxqjbnhaefaslkjdrptzyi +cvgowzqubnharfmspkjdrptzyi +cvgowxqubnhawfmslkjdeptzyb +cvuowequbnhaefmslkjdrntzyi +gvgowxqubnxaefmslkjdrjtzyi +cvgowxqubnhmetmsldjdrptzyi +cvgowxqubnhamfmsqkjdrptyyi +cvgoqxqubnhaefmslkjtrpazyi +cvgoexqubhhaefmslkjdrhtzyi +cvgowwqubnhaeflslkjdrptzyf +cvgowlpubnhaefmslkjdrptvyi +cvgowxouunhaebmslkjdrptzyi +cvdowhqubnhaefmslijdrptzyi +cvgowxqubnkatfmslkjdrhtzyi +cvgowxqpbnhxeumslkjdrptzyi +cvgowxqubnhaefmsukjjrptzyn +cvgowxqubnhmefmslzjdrvtzyi +cvtowxqubihaefmclkjdrptzyi +chgowcqubnhayfmslkjdrptzyi +cvguwxqubnhaefmblkjarptzyi +cvgowoqubnhaefmsikjdrytzyi +cvgkwxqubnhaefmslkjdrptchi +cvhowxqubnhaefmslkjdrvlzyi +cvlowxfubnhaefmslkjkrptzyi +cvgowxqubhhaefoslkjdrytzyi +cvgowxsubqhaefmslpjdrptzyi +cvgowxpubnhaefmslhjdrptzyb +cvgowxqubnhrefmjlkddrptzyi +cvgowxqubnhaxfmykkjdrptzyi +mvgowxqubnhakfmslkjdrptnyi +cwgowxqubnhaffmslkadrptzyi +chgowxquwnhaefmslsjdrptzyi +cvgowxqubnhaefmslkjdwpnsyi +cvgawxqubnhaefmslkldyptzyi +cvgowxqubnhiefmslkjdiprzyi +cvgkqxqubnhaefcslkjdrptzyi +cvgovoqubnhaefmslkjdrpuzyi +cvgowxqubnhaefmszkjdrjtzyk +cvgopxqubnhaefmslkjdqpnzyi +cvgtwxqubnhaefmslkjnrptzri +cvgowxqurnhaedmslfjdrptzyi +cvpowxqubnhaefmswkjdrltzyi +cvgowxqujnpaefmslkjdrptdyi +cvgowgqubnhzifmslkjdrptzyi +lvgowxqubnhaenmslkjdbptzyi +ebgowxqubnhaeymslkjdrptzyi +cvgowxtubqhaefmslkedrptzyi +cvgowxqubshaesmslkjdrptryi +cvgowxqubnhaefmflkjmrpkzyi +cvgowxqubngaefmslkjdrytzgi +cvgowxqubnhaefmslklhzptzyi +cveowxqubnhgefmslkjdrpezyi +cvgowxqubnhaeomslkjdrqtzym +cvgowxqubzhaefmslwjdrptfyi +cmgowxqubnhaefmsdkjdrptzui +cvlowxqubnhaefmslsjdrptzwi +cvhowxpubnhaefmslkjhrptzyi +cveosxqurnhaefmslkjdrptzyi +cvgowxqubnhaefgsdkjdrptjyi +cvgvwxqubnhaefmslzjdmptzyi +cviowxqubnhalfmslkjdrptzyr +cvgowxqubchqefmslkjdrptzoi +cvgownqubnhaefmsyktdrptzyi +cvgywxqubnuaefmslkjdrpfzyi +cvgobxqunnhaefmslkjdrptzbi +cvgowxqubshaefgslkjdrxtzyi +cvghwxqubnhaefmslkjdrbtmyi +cvhowxqubnhaefmslkjdrpnzys +cvgowxqubnmaefmslejdrptzyq +cvmrwxqubnhaefmslkjdrpzzyi +cvgowxqubshaefmslkfdrptzyu +cvgowqqubnhaefmslkodrpjzyi +cvgnwnquknhaefmslkjdrptzyi +cvgowxquxnhacfmflkjdrptzyi +ovgowxqubnhaefmslkjmrmtzyi +cvgowxqubneaefmslkedrptzqi +cvgowxqubphweflslkjdrptzyi +cvgowxqudnhaefmplkjdrptdyi +cvwowxbubnhaefmslkjurptzyi +cvgowxtubnhaefmslkjdrwwzyi +cvgowxqubnhkefmslajdrptzyn +cvgowxqxbphaefmslkjdrptzsi +cvgowxquenhaefmslmjwrptzyi +zvgowdqubnhaeftslkjdrptzyi +csgowxqubnhgefmslkjdrptzyy +cvgolxqubahaefmslkjdrpvzyi +cvgoqxquhwhaefmslkjdrptzyi +cvgawxqubghaefmsrkjdrptzyi +cvgozxqubnhaefmslkwdfptzyi +cvgowxqubnhaefmslhjdkptzzi +cvnowxqubnhaefmsqkjdrptqyi +cvpowxqubnhaefmslkpdrptdyi +cvgowxoubnhaermslkjdrctzyi +cvgowxqubnheefmslkjdrctzyr +cvgowxqunnhaqfhslkjdrptzyi +cvgowxqulnhaefmslrjdrntzyi diff --git a/day02/input2.txt b/day02/input2.txt new file mode 100644 index 0000000..5868f87 --- /dev/null +++ b/day02/input2.txt @@ -0,0 +1,250 @@ +mvgowxqubnhaefjslkjlrptzyi +pvgowlqubnhaefmslkjdrpteyi +ovgowoqubnhaefmslkjnrptzyi +cvgowxqubnrxefmslkjdrptzyo +cvgowxqubnhaefmsokjdrprzyf +cvgowxqubnhjeflslkjgrptzyi +cvgowxqvbnhaefmslkhdrotzyi +hvgowxqmbnharfmslkjdrptzyi +cvgoaxqubqhaefmslkjdrutzyi +cvxowxqdbnhaefmslkjdgptzyi +cvgikxqubnhaefmslkjdrptzyz +cvgnwxqubnhaqfjslkjdrptzyi +cqgowxqubnhaecmslkjgrptzyi +cvpowxqucnhaefmslkjdrptzyz +fvuoexqubnhaefmslkjdrptzyi +svgowxqubnhaefmsvkjdrttzyi +cvgowxqubnhaefmblkjdfpbzyi +cvkoyxqubnhaefsslkjdrptzyi +bvgowxqublhaefmslkjdrptzfi +xvgewxqubnhaefmslkjdrztzyi +cvgowxqubzhaefmslkkrrptzyi +cvgowxqubnhaefmslkudruuzyi +cvgowxqubnhaefmvlkjdrptwyl +cvgoyxqubnhaefmslkjvrotzyi +cvgowxoubnhaewmslkjdrpbzyi +cvgowxgubnhaefmslijdrptzxi +lvgowxqkbnhaefmslkjdrptzqi +xvgowxqubyhaefmflkjdrptzyi +wvnowxgubnhaefmslkjdrptzyi +cvgowxguwnhaefhslkjdrptzyi +cvgowfquxnhaefmdlkjdrptzyi +cvgywxqubnuaefmsldjdrpfzyi +cvkowxqzbrhaefmslkjdrptzyi +cviowxzubnhaefmslkjdrptqyi +cvgowxqubnhaefmsozjdrptzyc +cvglwxuubnhaewmslkjdrptzyi +cvgowxquknhaebmsfkjdrptzyi +vvgowxqubnhaesmslkjdrptzri +cvgowxoubndaefmslkjdrftzyi +cvgowxqubghaefmslkjdeptzyw +cvgowxqubnhaetmhlkjdrpvzyi +cvgowmquunhaefmslkjdrptzyt +cvgooxqpbniaefmslkjdrptzyi +cvgowxqubnhaeumslkjdkptiyi +cvgrwxqsbnhaemmslkjdrptzyi +cvrowxqubnhaefmslkjdrctcyi +dvgcwxqubnhaefmslkjdrptzyq +cugowxqubnhasfmmlkjdrptzyi +cwgowxqobzhaefmslkjdrptzyi +cvgowxquwnhaefmulkjdrptbyi +nvgowxqmbnhaefmslyjdrptzyi +cvgowxqubniakvmslkjdrptzyi +cvyowxqubnhaefmslejdrptzyx +cvgobxqubghaefeslkjdrptzyi +cvgowxiubnhaebmslkjdfptzyi +cvgosbqubnhaefmslkvdrptzyi +cvgpwxqubnhaefvslkjdrptzyh +cvgowxqubnyaefmslgjdsptzyi +cvgowxqubnhaefmslkjdrprzzp +cvgowxqubwhaemmslkjdrpazyi +cvgowxqpbnhaemmslkjdrpczyi +cvgoqxqubnhaelmslkjdrptzye +cvgowxqubnhaefmslbjdrttzvi +cvgowxqubnhlefmslkvurptzyi +cvgowxqujngaefmslktdrptzyi +cvgowxqubnhaefmsckjdcwtzyi +cvcowxqubnhaetmslkjorptzyi +jvnowxqubnhaefmslkjdrptzyf +cygowxqkbnhaefmslejdrptzyi +cvmowxqubnhaefmslkjdritzoi +cvgowxqubnpaefmslkjdrpnnyi +cvgowxqubnhaefmolkjdrpnzyy +uvgowxoubnhaefmslkjdrptzvi +cvgowxbabehaefmslkjdrptzyi +cvgokxqubnhaefmsckjdrjtzyi +cvgoxwqubahaefmslkjdrptzyi +cvgowxqusnhaefmslijdrptyyi +cvgowxqubmhaeqmslkxdrptzyi +cvgouxhubnhaefmslkjdrjtzyi +cvgowxqubnhaefmslrjdqptzyk +cvgowxiublhaefsslkjdrptzyi +cvgowxqubnxgefmslkadrptzyi +ovgowxqugshaefmslkjdrptzyi +cvgowxquznhaeemslsjdrptzyi +cvkowxqubnhaeomslkjdeptzyi +cvgvwxqubxhaefmslkjdrptzyu +cvglwxqybnhaefmslkjdrptzyb +cvgowxqubnlfwfmslkjdrptzyi +cvaowxqubnhaefmslkjdrvtzbi +cvgowxqubnrmefaslkjdrptzyi +cvgowxqubnhaefmsnkjdfpwzyi +cvgawxqmbnhaefmsykjdrptzyi +chgowmqubnhaefmslkjdrptwyi +cogowxqubnhaefmslkjxrptzri +cvgohxqubnoaesmslkjdrptzyi +cvdowxqubnhaofmslkjdrpvzyi +vvgowrqubnhaefmslkjdrpthyi +cvgowxquknhuefmslkjdoptzyi +cvyowxeubnhaefmslhjdrptzyi +cvglwxqubnhaefmslkjdrptdyq +cvgowxqubnhaefmsikgdrptayi +cvgowxqubnhaefjhlkjdrpczyi +cvgzwxkubnhaefmslkjdjptzyi +cxgowxqubnhaefmslkjdrptwyy +cvgowxqubnhaefeslkjdrmqzyi +cvgowxvubnhaefmilijdrptzyi +cvgowxqzbthaeomslkjdrptzyi +cvgowhqubndaefmglkjdrptzyi +cvgowxvubnhaeamylkjdrptzyi +cvgowiqubnhgefmslkjdrctzyi +cvgowxqubchaefmslksdritzyi +cvgowxqubnhaefmsnkjdreyzyi +cvgowxqubihaefmslkgdrutzyi +cvgowxqjbnhaeamslkjdrptzwi +cvgowxzubnhaefmsxkjdrrtzyi +cvgowxqubyhaetmslnjdrptzyi +cvgowxquhnhaebmslkjdxptzyi +cvgowxqubnhanfmslujdxptzyi +cvgowxqublhnefaslkjdrptzyi +cvgmwxqtbnhaefmslkjsrptzyi +jvgowxqubnhaeamslkjdrpmzyi +cvgowxqubhiaefmsljjdrptzyi +svgowxqubnhaefmswkjdrpozyi +cvgowxqebnhaeqmslkjdiptzyi +cveowxqubnhayzmslkjdrptzyi +cvglwxqubnhaefmxlkjdiptzyi +cvgowkqubdhaefmszkjdrptzyi +cvgowxkxbnhaeffslkjdrptzyi +cugowxqubnnaefmslujdrptzyi +cqgowxwubnhaepmslkjdrptzyi +cvgowxqubnhayfmmlkjwrptzyi +cvgowxquenhaefmsskxdrptzyi +cvgowxqubnhiefmsrkjdtptzyi +mvgowxkubnhaefmjlkjdrptzyi +cvgowkquunhaefmglkjdrptzyi +cvgowxqubqhaexmslgjdrptzyi +jvgowxqubnhaefmslkjddptlyi +cvgiwxqubnhaefmslkjdpptmyi +czgowxqubntaevmslkjdrptzyi +cvgotmqubnhaefmslkjdrpazyi +cvgowxtubnhaefmslkqdtptzyi +cvbowxqhnnhaefmslkjdrptzyi +cvgowkqubshaefmstkjdrptzyi +cvgowqqrbnaaefmslkjdrptzyi +cvgoixqubnhaefmslkjdrpmryi +cvgoxxqubnhaeimsxkjdrptzyi +cvgowxqubzhaebmslkjyrptzyi +cjgewxqubnhaefsslkjdrptzyi +cvgowxqdbnkaefmslwjdrptzyi +cvgowxqzbnhaeamslkjdrftzyi +cvgoixqubnsaewmslkjdrptzyi +cvgswxqubnhaxfmslkjdrptzni +cvwowxmubnhgefmslkjdrptzyi +cvggwxqubnhaefmslqjdbptzyi +cvgzwxqjbnhaefaslkjdrptzyi +cvgowzqubnharfmspkjdrptzyi +cvgowxqubnhawfmslkjdeptzyb +cvuowequbnhaefmslkjdrntzyi +gvgowxqubnxaefmslkjdrjtzyi +cvgowxqubnhmetmsldjdrptzyi +cvgowxqubnhamfmsqkjdrptyyi +cvgoqxqubnhaefmslkjtrpazyi +cvgoexqubhhaefmslkjdrhtzyi +cvgowwqubnhaeflslkjdrptzyf +cvgowlpubnhaefmslkjdrptvyi +cvgowxouunhaebmslkjdrptzyi +cvdowhqubnhaefmslijdrptzyi +cvgowxqubnkatfmslkjdrhtzyi +cvgowxqpbnhxeumslkjdrptzyi +cvgowxqubnhaefmsukjjrptzyn +cvgowxqubnhmefmslzjdrvtzyi +cvtowxqubihaefmclkjdrptzyi +chgowcqubnhayfmslkjdrptzyi +cvguwxqubnhaefmblkjarptzyi +cvgowoqubnhaefmsikjdrytzyi +cvgkwxqubnhaefmslkjdrptchi +cvhowxqubnhaefmslkjdrvlzyi +cvlowxfubnhaefmslkjkrptzyi +cvgowxqubhhaefoslkjdrytzyi +cvgowxsubqhaefmslpjdrptzyi +cvgowxpubnhaefmslhjdrptzyb +cvgowxqubnhrefmjlkddrptzyi +cvgowxqubnhaxfmykkjdrptzyi +mvgowxqubnhakfmslkjdrptnyi +cwgowxqubnhaffmslkadrptzyi +chgowxquwnhaefmslsjdrptzyi +cvgowxqubnhaefmslkjdwpnsyi +cvgawxqubnhaefmslkldyptzyi +cvgowxqubnhiefmslkjdiprzyi +cvgkqxqubnhaefcslkjdrptzyi +cvgovoqubnhaefmslkjdrpuzyi +cvgowxqubnhaefmszkjdrjtzyk +cvgopxqubnhaefmslkjdqpnzyi +cvgtwxqubnhaefmslkjnrptzri +cvgowxqurnhaedmslfjdrptzyi +cvpowxqubnhaefmswkjdrltzyi +cvgowxqujnpaefmslkjdrptdyi +cvgowgqubnhzifmslkjdrptzyi +lvgowxqubnhaenmslkjdbptzyi +ebgowxqubnhaeymslkjdrptzyi +cvgowxtubqhaefmslkedrptzyi +cvgowxqubshaesmslkjdrptryi +cvgowxqubnhaefmflkjmrpkzyi +cvgowxqubngaefmslkjdrytzgi +cvgowxqubnhaefmslklhzptzyi +cveowxqubnhgefmslkjdrpezyi +cvgowxqubnhaeomslkjdrqtzym +cvgowxqubzhaefmslwjdrptfyi +cmgowxqubnhaefmsdkjdrptzui +cvlowxqubnhaefmslsjdrptzwi +cvhowxpubnhaefmslkjhrptzyi +cveosxqurnhaefmslkjdrptzyi +cvgowxqubnhaefgsdkjdrptjyi +cvgvwxqubnhaefmslzjdmptzyi +cviowxqubnhalfmslkjdrptzyr +cvgowxqubchqefmslkjdrptzoi +cvgownqubnhaefmsyktdrptzyi +cvgywxqubnuaefmslkjdrpfzyi +cvgobxqunnhaefmslkjdrptzbi +cvgowxqubshaefgslkjdrxtzyi +cvghwxqubnhaefmslkjdrbtmyi +cvhowxqubnhaefmslkjdrpnzys +cvgowxqubnmaefmslejdrptzyq +cvmrwxqubnhaefmslkjdrpzzyi +cvgowxqubshaefmslkfdrptzyu +cvgowqqubnhaefmslkodrpjzyi +cvgnwnquknhaefmslkjdrptzyi +cvgowxquxnhacfmflkjdrptzyi +ovgowxqubnhaefmslkjmrmtzyi +cvgowxqubneaefmslkedrptzqi +cvgowxqubphweflslkjdrptzyi +cvgowxqudnhaefmplkjdrptdyi +cvwowxbubnhaefmslkjurptzyi +cvgowxtubnhaefmslkjdrwwzyi +cvgowxqubnhkefmslajdrptzyn +cvgowxqxbphaefmslkjdrptzsi +cvgowxquenhaefmslmjwrptzyi +zvgowdqubnhaeftslkjdrptzyi +csgowxqubnhgefmslkjdrptzyy +cvgolxqubahaefmslkjdrpvzyi +cvgoqxquhwhaefmslkjdrptzyi +cvgawxqubghaefmsrkjdrptzyi +cvgozxqubnhaefmslkwdfptzyi +cvgowxqubnhaefmslhjdkptzzi +cvnowxqubnhaefmsqkjdrptqyi +cvpowxqubnhaefmslkpdrptdyi +cvgowxoubnhaermslkjdrctzyi +cvgowxqubnheefmslkjdrctzyr +cvgowxqunnhaqfhslkjdrptzyi +cvgowxqulnhaefmslrjdrntzyi \ No newline at end of file diff --git a/plot1_binTree.png b/plot1_binTree.png new file mode 100644 index 0000000..c45ef58 Binary files /dev/null and b/plot1_binTree.png differ diff --git a/plot1_binTree_rel.png b/plot1_binTree_rel.png new file mode 100644 index 0000000..e777679 Binary files /dev/null and b/plot1_binTree_rel.png differ diff --git a/plot1_with_list_rel.png b/plot1_with_list_rel.png new file mode 100644 index 0000000..c60834b Binary files /dev/null and b/plot1_with_list_rel.png differ diff --git a/plot1_with_set_rel.png b/plot1_with_set_rel.png new file mode 100644 index 0000000..6944e6f Binary files /dev/null and b/plot1_with_set_rel.png differ diff --git a/plot_with_list.png b/plot_with_list.png new file mode 100644 index 0000000..fa2035a Binary files /dev/null and b/plot_with_list.png differ diff --git a/plot_with_set.png b/plot_with_set.png new file mode 100644 index 0000000..0ae06e8 Binary files /dev/null and b/plot_with_set.png differ