<filename>2018/day1.py
from functools import reduce


def part_one(number_array):
    return "Total: {}".format(reduce((lambda x, y: x + y), number_array))


def part_two(number_array):
    frequency = [0]

    while True:
        for item in number_array:
            last_item = frequency[-1]

            new_item = last_item + item

            if new_item in frequency:
                return "Repeat Frequency Found: {}".format(new_item)
            else:
                frequency.append(new_item)


if __name__ == '__main__':
    string_array = ["-9", "7", "5", "-13", "6", "14", "-5", "-10", "-10", "-12", "2", "5", "2", "-6", "-12", "1", "13",
                    "5", "3", "-15", "-12", "4", "-11", "10", "-5", "-14", "-6", "2", "-9", "-18", "8", "-1", "12", "9",
                    "5", "-9", "14", "3", "-4", "-16", "14", "14", "13", "-7", "-19", "12", "-9", "5", "21", "-7", "19",
                    "-2", "14", "18", "17", "4", "11", "-16", "-5", "-6", "-7", "-2", "-1", "-2", "-1", "14", "-17",
                    "5", "13", "8", "-6", "15", "2", "16", "-7", "-6", "11", "10", "17", "13", "-7", "17", "-18", "2",
                    "8", "-17", "16", "4", "7", "4", "-10", "-10", "8", "16", "-13", "-19", "-12", "-12", "10", "-5",
                    "21", "-12", "-17", "6", "-19", "18", "-10", "3", "-19", "7", "16", "-12", "6", "15", "-4", "9",
                    "5", "17", "-16", "-4", "-8", "2", "8", "5", "-6", "9", "2", "17", "15", "-6", "9", "18", "6", "18",
                    "-5", "-3", "17", "7", "-10", "-5", "4", "-6", "3", "-12", "-15", "-16", "-16", "18", "16", "-14",
                    "-9", "12", "-13", "-2", "5", "16", "-15", "7", "9", "8", "-11", "-8", "-15", "13", "11", "18",
                    "-15", "-5", "10", "14", "-13", "16", "2", "19", "17", "17", "-12", "17", "8", "-4", "-12", "-11",
                    "-12", "-4", "15", "5", "9", "-18", "-14", "-8", "13", "19", "2", "-11", "5", "5", "-3", "6", "9",
                    "12", "19", "-15", "-12", "-6", "22", "2", "-4", "16", "-11", "18", "6", "14", "1", "-3", "-10",
                    "6", "-10", "12", "7", "1", "-11", "13", "-17", "19", "16", "1", "-12", "-14", "8", "16", "-11",
                    "10", "7", "5", "-6", "5", "8", "2", "-4", "8", "5", "-10", "7", "5", "4", "13", "15", "12", "12",
                    "-14", "6", "-12", "2", "-8", "16", "5", "10", "18", "-2", "16", "2", "-11", "-13", "19", "9", "12",
                    "18", "14", "17", "9", "-13", "25", "-27", "18", "4", "16", "5", "-15", "13", "15", "-16", "12",
                    "23", "-12", "-8", "-19", "-10", "24", "16", "6", "-15", "26", "-16", "-13", "7", "25", "12", "19",
                    "14", "16", "-5", "-12", "-22", "-17", "-20", "-6", "-32", "-2", "-18", "-10", "-11", "-26", "10",
                    "-17", "-8", "-17", "-8", "9", "-16", "-14", "-19", "17", "19", "2", "20", "19", "-13", "-7", "19",
                    "-14", "-15", "-5", "3", "-19", "-6", "-11", "-2", "15", "13", "-8", "-12", "-22", "-9", "-14",
                    "15", "-17", "-1", "-13", "9", "17", "15", "-7", "13", "2", "15", "-6", "17", "14", "8", "24",
                    "-19", "-10", "26", "-31", "-18", "-9", "11", "-15", "20", "22", "2", "20", "18", "10", "-16",
                    "-20", "-32", "27", "33", "-12", "-13", "14", "-20", "-80", "-11", "6", "-19", "-13", "-5", "-9",
                    "5", "13", "-8", "-17", "-14", "-10", "-16", "-5", "-11", "6", "6", "-9", "-13", "-4", "-20", "13",
                    "3", "15", "4", "18", "3", "-13", "-7", "11", "-20", "-6", "18", "13", "-23", "13", "-17", "-18",
                    "-5", "7", "8", "-13", "-23", "-18", "14", "2", "7", "-1", "5", "-16", "-15", "7", "-8", "10",
                    "-16", "-10", "-22", "3", "18", "8", "-6", "-4", "7", "24", "-8", "-22", "27", "15", "1", "-14",
                    "-47", "-22", "-10", "48", "-56", "-41", "-9", "73", "79", "-9", "48", "-11", "36", "6", "-16",
                    "20", "10", "13", "-20", "12", "9", "3", "4", "9", "-12", "15", "2", "19", "8", "16", "13", "-19",
                    "-23", "10", "-18", "12", "20", "3", "12", "-17", "-8", "20", "3", "8", "2", "-17", "-13", "-18",
                    "-8", "-28", "7", "1", "4", "-1", "-29", "131", "-4", "8", "-27", "-32", "14", "-16", "-10", "-77",
                    "-31", "160", "-115", "-130", "-103", "930", "75389", "-16", "-5", "4", "8", "2", "-7", "6", "7",
                    "11", "-8", "4", "-3", "-5", "13", "7", "-5", "7", "-5", "-1", "11", "18", "19", "-18", "7", "-14",
                    "2", "-5", "12", "11", "15", "-17", "-6", "17", "3", "-4", "9", "16", "-13", "2", "19", "-7", "-3",
                    "18", "20", "-11", "13", "3", "4", "-2", "14", "9", "-17", "2", "8", "-5", "-8", "2", "10", "17",
                    "2", "15", "-1", "-11", "13", "-9", "-5", "-19", "-18", "-16", "-14", "-7", "-13", "-11", "-10",
                    "15", "7", "18", "-12", "-9", "-16", "3", "-14", "-1", "16", "-9", "-12", "-19", "1", "-5", "-15",
                    "-14", "-7", "17", "-1", "-19", "-9", "6", "12", "-21", "-20", "-11", "-6", "8", "5", "10", "-2",
                    "12", "-13", "6", "12", "-10", "13", "-6", "19", "-3", "-22", "-18", "-4", "-3", "20", "10", "-3",
                    "-19", "-9", "6", "-7", "-13", "-18", "-18", "-3", "10", "-13", "-14", "-6", "9", "20", "5", "5",
                    "16", "14", "14", "-19", "-19", "11", "10", "-14", "-17", "-19", "-6", "-11", "-13", "-1", "-18",
                    "-14", "10", "-8", "1", "1", "15", "8", "-15", "6", "-9", "2", "12", "13", "-7", "-5", "-19", "-6",
                    "-1", "-19", "-12", "-1", "-4", "-6", "-16", "2", "-20", "-15", "5", "9", "-19", "12", "9", "-15",
                    "-5", "-12", "-6", "-12", "-11", "13", "-11", "-9", "-2", "-16", "-17", "-9", "16", "20", "5", "20",
                    "-7", "-6", "4", "-12", "-1", "-5", "-22", "-19", "10", "-9", "-4", "-5", "-8", "-11", "-18", "-13",
                    "20", "1", "-12", "7", "-19", "10", "-8", "13", "-7", "-19", "-15", "-2", "7", "-18", "-14", "2",
                    "15", "-6", "-20", "-10", "20", "3", "-19", "-19", "-22", "-14", "7", "10", "-15", "-12", "-18",
                    "-7", "-20", "-12", "1", "14", "13", "-8", "-1", "-10", "-13", "9", "11", "7", "18", "-4", "6",
                    "-3", "20", "18", "-14", "-3", "11", "15", "8", "-9", "28", "15", "13", "14", "4", "-13", "-1",
                    "-14", "-5", "-20", "16", "10", "11", "32", "23", "18", "3", "3", "-12", "4", "11", "14", "17", "2",
                    "6", "-5", "19", "12", "17", "-15", "-10", "-15", "-5", "-17", "20", "20", "-14", "23", "-14", "26",
                    "-11", "9", "21", "4", "16", "-4", "5", "-11", "-8", "-10", "-5", "14", "-2", "-4", "12", "-10",
                    "16", "1", "12", "1", "-2", "-17", "10", "21", "-9", "15", "-9", "14", "3", "-1", "5", "19", "10",
                    "-7", "-10", "-13", "14", "-2", "16", "10", "-1", "-20", "9", "-8", "-9", "-19", "18", "3", "-18",
                    "11", "-1", "-5", "21", "22", "4", "-11", "6", "18", "-8", "10", "12", "-19", "-5", "25", "5",
                    "-12", "-12", "3", "14", "15", "4", "6", "19", "18", "7", "-16", "-1", "-13", "-6", "-1", "11",
                    "-7", "13", "-15", "-5", "13", "21", "-3", "-14", "-8", "-16", "13", "2", "-9", "-18", "21", "-20",
                    "-20", "18", "-19", "-22", "20", "-3", "-4", "-9", "-8", "-20", "1", "-21", "-4", "-9", "-1", "18",
                    "-7", "10", "20", "-16", "23", "17", "9", "-19", "-3", "9", "5", "2", "-25", "1", "-15", "-55",
                    "-13", "-10", "-11", "1", "-14", "-12", "23", "15", "15", "-2", "19", "-7", "-6", "10", "12", "1",
                    "8", "-51", "28", "24", "-98", "16", "-3", "-5", "-13", "-37", "6", "-14", "9", "-12", "-6", "-23",
                    "16", "-12", "-10", "3", "41", "4", "20", "-13", "-5", "-1", "-64", "-30", "-11", "-23", "-46",
                    "-27", "-11", "-75223"]
    my_number_array = [int(i) for i in string_array]

    test_number_array = [3, 3, 4, -2, -4]
    print(part_one(my_number_array))
    print(part_two(my_number_array))


