add: part1
This commit is contained in:
		
							
								
								
									
										10
									
								
								2023/day03/example1.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								2023/day03/example1.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					467..114..
 | 
				
			||||||
 | 
					...*......
 | 
				
			||||||
 | 
					..35..633.
 | 
				
			||||||
 | 
					......#...
 | 
				
			||||||
 | 
					617*......
 | 
				
			||||||
 | 
					.....+.58.
 | 
				
			||||||
 | 
					..592.....
 | 
				
			||||||
 | 
					......755.
 | 
				
			||||||
 | 
					...$.*....
 | 
				
			||||||
 | 
					.664.598..
 | 
				
			||||||
							
								
								
									
										43
									
								
								2023/day03/src/part1.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								2023/day03/src/part1.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					text: str = open("input.txt", "r").read()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					value: int = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_symbol_around(list:[str], pos: tuple, length: int):
 | 
				
			||||||
 | 
						start = [0,0]
 | 
				
			||||||
 | 
						end = [0,0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						start[0] = pos[0]
 | 
				
			||||||
 | 
						start[1] = pos[1]
 | 
				
			||||||
 | 
						start[0] -= (start[0] != 0)
 | 
				
			||||||
 | 
						start[1] -= (start[1] != 0)
 | 
				
			||||||
 | 
						end[0] = pos[0]
 | 
				
			||||||
 | 
						end[1] = pos[1]
 | 
				
			||||||
 | 
						end[0] += length
 | 
				
			||||||
 | 
						end[0] += end[0] < len(list[pos[1]])
 | 
				
			||||||
 | 
						end[1] += end[1] < len(list)
 | 
				
			||||||
 | 
						bozo = list[start[1]:end[1] + 1]
 | 
				
			||||||
 | 
						for y in bozo:
 | 
				
			||||||
 | 
							bozo2 = y[start[0]:end[0]]
 | 
				
			||||||
 | 
							print(bozo2)
 | 
				
			||||||
 | 
							for x in bozo2:
 | 
				
			||||||
 | 
								if (not x.isdigit() and not x == "."):
 | 
				
			||||||
 | 
									print()
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
						print()
 | 
				
			||||||
 | 
						return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lst = text.split("\n")
 | 
				
			||||||
 | 
					end: int = 0
 | 
				
			||||||
 | 
					for y in range(len(lst)):
 | 
				
			||||||
 | 
						lst[y] += "."
 | 
				
			||||||
 | 
						for x in range(len(lst[y])):
 | 
				
			||||||
 | 
							if (lst[y][x].isdigit()):
 | 
				
			||||||
 | 
								end += 1;
 | 
				
			||||||
 | 
							elif (end != 0):
 | 
				
			||||||
 | 
								if (get_symbol_around(lst, (x - end, y), end)):
 | 
				
			||||||
 | 
									value += int(lst[y][x - end:x])
 | 
				
			||||||
 | 
								else:
 | 
				
			||||||
 | 
									print(f"./input.txt:{y + 1}:{x}")
 | 
				
			||||||
 | 
								end = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print(value)
 | 
				
			||||||
		Reference in New Issue
	
	Block a user