Initial Commit
This commit is contained in:
		
							parent
							
								
									68e7cc7e63
								
							
						
					
					
						commit
						b86fb4eff5
					
				
					 1 changed files with 53 additions and 0 deletions
				
			
		
							
								
								
									
										53
									
								
								Day1/solution2.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								Day1/solution2.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,53 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env python3
 | 
				
			||||||
 | 
					from typing import List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Solution:
 | 
				
			||||||
 | 
					    def __init__(self) -> None:
 | 
				
			||||||
 | 
					        self.lines: List[str] = []
 | 
				
			||||||
 | 
					        self.left_array: List[int] = []
 | 
				
			||||||
 | 
					        self.right_array: List[int] = []
 | 
				
			||||||
 | 
					        self.difference_array: List[int] = []
 | 
				
			||||||
 | 
					        self.result: int = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def read(self) -> None:
 | 
				
			||||||
 | 
					        with open("input") as f:
 | 
				
			||||||
 | 
					            self.lines = f.readlines()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def clean(self) -> None:
 | 
				
			||||||
 | 
					        for i in range(len(self.lines)):
 | 
				
			||||||
 | 
					            self.lines[i] = self.lines[i].strip()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def split_lines(self) -> None:
 | 
				
			||||||
 | 
					        for line in self.lines:
 | 
				
			||||||
 | 
					            elements: List[str] = line.split()
 | 
				
			||||||
 | 
					            clean_element: int = int(elements[0])
 | 
				
			||||||
 | 
					            self.left_array.append(clean_element)
 | 
				
			||||||
 | 
					            clean_element: int = int(elements[1])
 | 
				
			||||||
 | 
					            self.right_array.append(clean_element)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def calculate_occurences(self) -> None:
 | 
				
			||||||
 | 
					        for element in self.left_array:
 | 
				
			||||||
 | 
					            tmp: int = 0
 | 
				
			||||||
 | 
					            for i in range(len(self.right_array)):
 | 
				
			||||||
 | 
					                if element == self.right_array[i]:
 | 
				
			||||||
 | 
					                    tmp += 1
 | 
				
			||||||
 | 
					            self.difference_array.append(element * tmp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def calculate_total_similary(self) -> int:
 | 
				
			||||||
 | 
					        for i in range(len(self.difference_array)):
 | 
				
			||||||
 | 
					            self.result += self.difference_array[i]
 | 
				
			||||||
 | 
					        return self.result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main() -> None:
 | 
				
			||||||
 | 
					    solver: Solution = Solution()
 | 
				
			||||||
 | 
					    solver.read()
 | 
				
			||||||
 | 
					    solver.clean()
 | 
				
			||||||
 | 
					    solver.split_lines()
 | 
				
			||||||
 | 
					    solver.calculate_occurences()
 | 
				
			||||||
 | 
					    solution: int = solver.calculate_total_similary()
 | 
				
			||||||
 | 
					    print(solution)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
		Loading…
	
		Reference in a new issue