day25
This commit is contained in:
parent
6d4a35f85e
commit
1cf7be9ee2
58
day25.py
Normal file
58
day25.py
Normal file
@ -0,0 +1,58 @@
|
||||
from tools.aoc import AOCDay
|
||||
from typing import Any
|
||||
|
||||
|
||||
def int2snafu(dec: int) -> str:
|
||||
conv = "012=-0"
|
||||
snafu = ""
|
||||
power = 1
|
||||
over = 0
|
||||
while dec > 0:
|
||||
c = dec % (5 ** power) + over
|
||||
dec //= 5
|
||||
if c > 2:
|
||||
over = 1
|
||||
else:
|
||||
over = 0
|
||||
|
||||
snafu = conv[c] + snafu
|
||||
|
||||
return snafu
|
||||
|
||||
|
||||
def snafu2int(snafu: str) -> int:
|
||||
dec = 0
|
||||
for i, c in enumerate(snafu):
|
||||
if c == '-':
|
||||
val = -1
|
||||
elif c == '=':
|
||||
val = -2
|
||||
else:
|
||||
val = int(c)
|
||||
|
||||
dec += 5 ** (len(snafu) - i - 1) * val
|
||||
|
||||
return dec
|
||||
|
||||
|
||||
class Day(AOCDay):
|
||||
inputs = [
|
||||
[
|
||||
("2=-1=0", "input25_test"),
|
||||
("2==221=-002=0-02-000", "input25"),
|
||||
],
|
||||
[
|
||||
(None, "input25"),
|
||||
]
|
||||
]
|
||||
|
||||
def part1(self) -> Any:
|
||||
return int2snafu(sum(snafu2int(c) for c in self.getInput()))
|
||||
|
||||
def part2(self) -> Any:
|
||||
return ""
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
day = Day(2022, 25)
|
||||
day.run(verbose=True)
|
||||
101
inputs/input25
Normal file
101
inputs/input25
Normal file
@ -0,0 +1,101 @@
|
||||
22-00====1
|
||||
1210=012020-1=
|
||||
2=-221
|
||||
1=020
|
||||
1=2=0==12----=-
|
||||
1===-22-=
|
||||
101120212112-
|
||||
2022-==20-=-12===2
|
||||
1=20-200=22-1-1-2=
|
||||
1-20021=21-
|
||||
11--0-==0-1-22
|
||||
2--0=---2=-
|
||||
21=--=-01=-0=112-21
|
||||
2=0200
|
||||
1011021--0-=-10010
|
||||
2=1=122-22=1---2
|
||||
110-0--0
|
||||
200
|
||||
1=2
|
||||
1==11=101-=-000=0==2
|
||||
1200-022-=
|
||||
1--0=02-2=21220022
|
||||
10--
|
||||
10===202=22=00=1
|
||||
11022
|
||||
1--222--
|
||||
100
|
||||
2-0
|
||||
1=221==
|
||||
1==21=22
|
||||
2==0-=2
|
||||
1==1=21=201-
|
||||
12-0=1110-1=02-022
|
||||
2-12=21=--0020=
|
||||
10-1-0=0=01=0--=2--
|
||||
2=1==-001=0=12
|
||||
212=10002
|
||||
10-=02200202=2==
|
||||
1-21-0=-10
|
||||
1-=12222112
|
||||
1=1--12220=1
|
||||
10-
|
||||
1=-02
|
||||
1=210
|
||||
21==1=
|
||||
1--==--11
|
||||
1--21212-=--200-0-
|
||||
1000010
|
||||
202=012-11-100200
|
||||
2=-21202200-=
|
||||
11=1112=1020111
|
||||
12=1002022-0
|
||||
1122
|
||||
1=-0-
|
||||
1=1=20=0010-
|
||||
12=2-0000---
|
||||
1-
|
||||
2-2=
|
||||
12001==---1
|
||||
2---=--=0012121100
|
||||
10-10-11=1
|
||||
1=112-2=0-0=0--=0
|
||||
2=0=212122
|
||||
102==21101=-==1
|
||||
102
|
||||
1=2-2-0000211
|
||||
10-120-=00
|
||||
2=-02112010111-0-
|
||||
1-0=
|
||||
112
|
||||
1=2=
|
||||
11=20
|
||||
10-2-01-210
|
||||
1-02122-2=-
|
||||
1-22==0===0-0
|
||||
10=--=011-
|
||||
2101-=1-12
|
||||
1==0=0=01
|
||||
22110-=0=111
|
||||
12---1-10-0-=1
|
||||
2-2-=
|
||||
1-=101--11=12=
|
||||
2-0--02-01=1-10==
|
||||
2=--=200=12=110
|
||||
12=
|
||||
2--=
|
||||
20212
|
||||
2102-2
|
||||
2=202102
|
||||
2=1=
|
||||
1101011-=1222-
|
||||
11
|
||||
202
|
||||
102=10001=
|
||||
101001
|
||||
1====11=0=12
|
||||
2211001
|
||||
11-2-
|
||||
1-00
|
||||
11=1-1--
|
||||
2=
|
||||
13
inputs/input25_test
Normal file
13
inputs/input25_test
Normal file
@ -0,0 +1,13 @@
|
||||
1=-0-2
|
||||
12111
|
||||
2=0=
|
||||
21
|
||||
2=01
|
||||
111
|
||||
20012
|
||||
112
|
||||
1=-1=
|
||||
1-12
|
||||
12
|
||||
1=
|
||||
122
|
||||
Loading…
Reference in New Issue
Block a user