예제 #1
0
def test_part1_given0():
    part1 = Day(9, 1)
    part1.load(
        data="109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99".split(
            ','))
    part1.apply(int)
    part1.opcode()
    assert part1.result == 99
예제 #2
0
def test_part1():
    part1 = Day(2, 1)
    part1.load(typing=int, sep=',')

    part1.data[1] = 12
    part1.data[2] = 2
    part1.opcode()
    assert part1.data[0] == 3409710
예제 #3
0
def test_part2_given_0():
    part2 = Day(5,2)
    part2.load(data="3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99".split(','))
    part2.apply(int)
    part2.opcode(7)
    assert part2.result == 999
    part2.reset_apply()
    part2.opcode(8)
    assert part2.result == 1000
    part2.reset_apply()
    part2.opcode(9)
    assert part2.result == 1001
예제 #4
0
from util import Day
if __name__ == '__main__':
    # --Part01-- input=1 result=7692125
    part1 = Day(5,1)
    part1.load(typing=int,sep=',')
    part1.opcode(1)

    print(part1.answer(part1.result))

    # --Part02-- input=5 result=14340395
    part2 = Day(5,2)
    part2.load(typing=int,sep=',')
    part2.opcode(5)

    print(part2.answer(part2.result))
예제 #5
0
파일: day09.py 프로젝트: Solalarium/AoC
from util import Day

if __name__ == '__main__':
    # --Part 1-- input=1 result=3335138414
    part1 = Day(9, 1)
    part1.load(typing=int, sep=',')
    part1.opcode(1)

    print(part1.answer())

    # --Part 2-- input=2 result=49122
    part2 = Day(9, 2)
    part2.load(typing=int, sep=',')
    part2.opcode(2)

    print(part2.answer())
예제 #6
0
def test_part1():
    part1 = Day(5,1)
    part1.load(typing=int,sep=',')
    part1.opcode(1)
    assert part1.result == 7692125
예제 #7
0
def test_part2():
    part2 = Day(5,2)
    part2.load(typing=int,sep=',')
    part2.opcode(5)
    assert part2.result == 14340395
예제 #8
0
def test_part1_given_0():
    part1 = Day(5,1)
    part1.load(data="3,0,4,0,99".split(','))
    part1.apply(int)
    part1.opcode(1)
    assert part1.result == 1
예제 #9
0
def test_part1():
    part1 = Day(9, 1)
    part1.load(typing=int, sep=',')
    part1.opcode(1)
    assert part1.result == 3335138414
예제 #10
0
def test_part2():
    part2 = Day(9, 2)
    part2.load(typing=int, sep=',')
    part2.opcode(2)
    assert part2.result == 49122
예제 #11
0
def test_part1_given2():
    part1 = Day(9, 1)
    part1.load(data="104,1125899906842624,99".split(','))
    part1.apply(int)
    part1.opcode()
    assert part1.result == 1125899906842624
예제 #12
0
def test_part1_given1():
    part1 = Day(9, 1)
    part1.load(data="1102,34915192,34915192,7,4,7,99,0".split(','))
    part1.apply(int)
    part1.opcode()
    assert part1.result == 1219070632396864
예제 #13
0
파일: day02.py 프로젝트: Solalarium/AoC
from util import Day

def find_inputs(part2):
    for i in range(100):
        for j in range(100):
            part2.data[1] = i
            part2.data[2] = j
            if part2.opcode()[0] == 19690720:
                return(100 * i + j)
            part2.reset()

if __name__ == '__main__':

    # --Part01-- 3409710

    part1 = Day(2,1)
    part1.load(typing=int, sep=',')

    part1.data[1] = 12
    part1.data[2] = 2
    part1.opcode()
    print(part1.answer(part1.data[0]))

    # --Part02-- 7912

    part2 = Day(2,2)
    part2.load(typing=int, sep=',')

    print(part2.answer(find_inputs(part2)))