diff --git a/3/advent_2.py b/3/advent_2.py new file mode 100755 index 0000000..7ddb31d --- /dev/null +++ b/3/advent_2.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 + +from dataclasses import dataclass + + +@dataclass +class Point: + line: int + pos: int + + +@dataclass +class Arv: + line: int + algus: int + lopp: int + arv: int + + +def leianumbrid(line, pos, arvud): + tulemus = 1 + mitu = 0 + print(f"rida={line}, pos={pos}") + for i in arvud: + if i.line == (line - 1): + if i.algus in [pos - 1, pos, pos + 1]: + mitu += 1 + tulemus *= i.arv + print(f"t1 {i}") + else: + if i.lopp in [pos + 2, pos + 1, pos]: + mitu += 1 + tulemus *= i.arv + print(f"t2 {i}") + if i.line == (line + 1): + if i.algus in [pos - 1, pos, pos + 1]: + mitu += 1 + tulemus *= i.arv + print(f"t3 {i}") + else: + if i.lopp in [pos , pos + 1, pos + 2 ]: + mitu += 1 + tulemus *= i.arv + print(f"t4 {i}") + if i.line == line: + if i.algus in [pos + 1]: + mitu += 1 + tulemus *= i.arv + print(f"t5 {i}") + + if i.lopp in [pos]: + mitu += 1 + tulemus *= i.arv + print(f"t6 {i}") + + print(f"Leidsin {mitu} arvu") + print(f"Tulemus oli {tulemus}") + if mitu == 2: + return tulemus + + return 0 + + +with open("/home/jesmin/wrk/aoc/3/data3.txt") as file: + lines = [line.rstrip() for line in file] + +linecount = len(lines) + +x = 0 +y = 0 +kogunumber = 0 +arvud = [] +for y in range(0, linecount): + number = "" + print("Rida algab") + print(lines[y]) + for x in range(0, len(lines[y])): + if lines[y][x].isdigit(): + if len(number) == 0: + numbrialgus = Point(y, x) + number += lines[y][x] + else: + if len(number) > 0: + arvud.append(Arv(y, numbrialgus.pos, x, int(number))) + print(arvud[-1]) + number = "" + + if len(number) > 0: + arvud.append(Arv(y, numbrialgus.pos, x, int(number))) + print(arvud[-1]) + number = "" + + +print(arvud) + + +ylinumber = 0 +for y in range(0, linecount): + for x in range(0, len(lines[y])): + if lines[y][x] == "*": + ylinumber += leianumbrid(y, x, arvud) + +print(ylinumber)