diff --git a/2015/01/part1.py b/2015/01/part1.py deleted file mode 100644 index e5375aa..0000000 --- a/2015/01/part1.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 - -with open(input_f) as file: - for line in file: - for idx,i in enumerate(line): - if i == '(': - result += 1 - if i == ')': - result -= 1 -print(result) diff --git a/2015/01/solution.py b/2015/01/solution.py new file mode 100644 index 0000000..d4f3e10 --- /dev/null +++ b/2015/01/solution.py @@ -0,0 +1,46 @@ +#!/bin/python3 +import sys,re +from pprint import pprint +sys.path.insert(0, '../../') +from fred import list2int + +input_f = 'input' + +part = 2 +######################################### +# # +# Part 1 # +# # +######################################### + +result = 0 +if part == 1: + with open(input_f) as file: + for line in file: + for idx,i in enumerate(line): + if i == '(': + result += 1 + if i == ')': + result -= 1 + print(result) + + + +######################################### +# # +# Part 2 # +# # +######################################### + +result = 0 +if part == 2: + with open(input_f) as file: + for line in file: + for idx,i in enumerate(line): + if i == '(': + result += 1 + if i == ')': + result -= 1 + if result == -1: + print(idx+1) + break \ No newline at end of file diff --git a/2015/02/2.md b/2015/02/2.md new file mode 100644 index 0000000..9147e19 --- /dev/null +++ b/2015/02/2.md @@ -0,0 +1,63 @@ +## \-\-- Day 2: I Was Told There Would Be No Math \-\-- + +The elves are running low on wrapping paper, and so they need to submit +an order for more. They have a list of the dimensions (length `l`, width +`w`, and height `h`) of each present, and only want to order exactly as +much as they need. + +Fortunately, every present is a box (a perfect [right rectangular +prism](https://en.wikipedia.org/wiki/Cuboid#Rectangular_cuboid)), which +makes calculating the required wrapping paper for each gift a little +easier: find the surface area of the box, which is +`2*l*w + 2*w*h + 2*h*l`. The elves also need a little extra paper for +each present: the area of the smallest side. + +For example: + +- A present with dimensions `2x3x4` requires `2*6 + 2*12 + 2*8 = 52` + square feet of wrapping paper plus `6` square feet of slack, for a + total of `58` square feet. +- A present with dimensions `1x1x10` requires `2*1 + 2*10 + 2*10 = 42` + square feet of wrapping paper plus `1` square foot of slack, for a + total of `43` square feet. + +All numbers in the elves\' list are in +feet. +How many total *square feet of wrapping paper* should they order? + +Your puzzle answer was `1588178`. + +## \-\-- Part Two \-\-- {#part2} + +The elves are also running low on ribbon. Ribbon is all the same width, +so they only have to worry about the length they need to order, which +they would again like to be exact. + +The ribbon required to wrap a present is the shortest distance around +its sides, or the smallest perimeter of any one face. Each present also +requires a bow made out of ribbon as well; the feet of ribbon required +for the perfect bow is equal to the cubic feet of volume of the present. +Don\'t ask how they tie the bow, though; they\'ll never tell. + +For example: + +- A present with dimensions `2x3x4` requires `2+2+3+3 = 10` feet of + ribbon to wrap the present plus `2*3*4 = 24` feet of ribbon for the + bow, for a total of `34` feet. +- A present with dimensions `1x1x10` requires `1+1+1+1 = 4` feet of + ribbon to wrap the present plus `1*1*10 = 10` feet of ribbon for the + bow, for a total of `14` feet. + +How many total *feet of ribbon* should they order? + +Your puzzle answer was `3783758`. + +Both parts of this puzzle are complete! They provide two gold stars: +\*\* + +At this point, you should [return to your Advent calendar](/2015) and +try another puzzle. + +If you still want to see it, you can [get your puzzle +input](2/input). + diff --git a/2015/02/solution.py b/2015/02/solution.py new file mode 100644 index 0000000..3b45b87 --- /dev/null +++ b/2015/02/solution.py @@ -0,0 +1,52 @@ +#!/bin/python3 +import sys,re +from pprint import pprint +sys.path.insert(0, '../../') +from fred import list2int + +input_f = 'input' + +part = 2 +######################################### +# # +# Part 1 # +# # +######################################### + +result = 0 + +if part == 1: + with open(input_f) as file: + for line in file: + tmp = line.rstrip().split('x') + tmp = list(map(int,tmp)) + first = tmp[0] * tmp[1] + second = tmp[1] * tmp[2] + third = tmp[2] * tmp[0] + smallest = min(first,second,third) + result = result + (2*first) + (2*second) + (2*third) + smallest + print(result) + +######################################### +# # +# Part 2 # +# # +######################################### + +result = 0 + +if part == 2: + with open(input_f) as file: + for line in file: + tmp = line.rstrip().split('x') + tmp = list(map(int,tmp)) + first = tmp[0] * tmp[1] + second = tmp[1] * tmp[2] + third = tmp[2] * tmp[0] + #2*l*w + 2*w*h + 2*h*l + smallest = min(first,second,third) + tmp.sort() + rib = tmp[0]+tmp[0]+tmp[1]+tmp[1] + bow = tmp[0]*tmp[1]*tmp[2] + result = result + rib + bow + print(result) diff --git a/2015/03/3.md b/2015/03/3.md new file mode 100644 index 0000000..f21a04e --- /dev/null +++ b/2015/03/3.md @@ -0,0 +1,60 @@ +## \-\-- Day 3: Perfectly Spherical Houses in a Vacuum \-\-- + +Santa is delivering presents to an infinite two-dimensional grid of +houses. + +He begins by delivering a present to the house at his starting location, +and then an elf at the North Pole calls him via radio and tells him +where to move next. Moves are always exactly one house to the north +(`^`), south (`v`), east (`>`), or west (`<`). After each move, he +delivers another present to the house at his new location. + +However, the elf back at the north pole has had a little too much +eggnog, and so his directions are a little off, and Santa ends up +visiting some houses more than once. How many houses receive *at least +one present*? + +For example: + +- `>` delivers presents to `2` houses: one at the starting location, + and one to the east. +- `^>v<` delivers presents to `4` houses in a square, including twice + to the house at his starting/ending location. +- `^v^v^v^v^v` delivers a bunch of presents to some very lucky + children at only `2` houses. + +Your puzzle answer was `2081`. + +## \-\-- Part Two \-\-- {#part2} + +The next year, to speed up the process, Santa creates a robot version of +himself, *Robo-Santa*, to deliver presents with him. + +Santa and Robo-Santa start at the same location (delivering two presents +to the same starting house), then take turns moving based on +instructions from the elf, who is +eggnoggedly +reading from the same script as the previous year. + +This year, how many houses receive *at least one present*? + +For example: + +- `^v` delivers presents to `3` houses, because Santa goes north, and + then Robo-Santa goes south. +- `^>v<` now delivers presents to `3` houses, and Santa and Robo-Santa + end up back where they started. +- `^v^v^v^v^v` now delivers presents to `11` houses, with Santa going + one direction and Robo-Santa going the other. + +Your puzzle answer was `2341`. + +Both parts of this puzzle are complete! They provide two gold stars: +\*\* + +At this point, you should [return to your Advent calendar](/2015) and +try another puzzle. + +If you still want to see it, you can [get your puzzle +input](3/input). + diff --git a/2015/03/solution.py b/2015/03/solution.py new file mode 100644 index 0000000..a03a2cc --- /dev/null +++ b/2015/03/solution.py @@ -0,0 +1,110 @@ +#!/bin/python3 +import sys,re +from pprint import pprint +sys.path.insert(0, '../../') +from fred import list2int + +input_f = 'input' + +part = 2 +######################################### +# # +# Part 1 # +# # +######################################### + +if part == 1: + result = 0 + arr = [] + l = 101 + for i in range(0,l): + arr.append([]) + for j in range(0,l): + arr[i].append('O') + + start=int((l-1)/2) + + X = start + Y = start + + with open(input_f) as file: + for line in file: + tmp = list(line.rstrip()) + arr[X][Y] = 'X' + for idx,i in enumerate(tmp): + if i == '^': + Y -= 1 + if i == '>': + X += 1 + if i == '<': + X -= 1 + if i == 'v': + Y += 1 + + arr[X][Y] = 'X' + + for idx,i in enumerate(arr): + for jdx,j in enumerate(i): + if arr[idx][jdx] == 'X': + result += 1 + print(result) + + + + +######################################### +# # +# Part 2 # +# # +######################################### +if part == 2: + result = 0 + arr = [] + l = 101 + for i in range(0,l): + arr.append([]) + for j in range(0,l): + arr[i].append('O') + + start=int((l-1)/2) + + X = start + Y = start + + rX = start + rY = start + + with open(input_f) as file: + for line in file: + tmp = list(line.rstrip()) + arr[X][Y] = 'X' + arr[rX][rY] = 'X' + for idx,i in enumerate(tmp): + if idx % 2 == 0: + if i == '^': + Y -= 1 + if i == '>': + X += 1 + if i == '<': + X -= 1 + if i == 'v': + Y += 1 + else: + if i == '^': + rY -= 1 + if i == '>': + rX += 1 + if i == '<': + rX -= 1 + if i == 'v': + rY += 1 + + arr[X][Y] = 'X' + arr[rX][rY] = 'X' + + for idx,i in enumerate(arr): + for jdx,j in enumerate(i): + if arr[idx][jdx] == 'X': + result += 1 + print(result) + diff --git a/2015/day1/input b/2015/day1/input deleted file mode 100644 index 21497dc..0000000 --- a/2015/day1/input +++ /dev/null @@ -1 +0,0 @@ -(((())))()((((((((())()(()))(()((((()(()(((()((()((()(()()()()()))(((()(()((((((((((())(()()((())()(((())))()(()(()((()(()))(()()()()((()((()(((()()(((((((()()())()((((()()(((((()(())()(())((())()()))()(((((((())(()())(()(((())(()))((())))(()((()())))()())((((())))(()(((((()(())(((()()((()((()((((((((((())(()())))))()))())()()((((()()()()()()((((((())())(((()())()((()()(((()()()))(((((()))(((()(()()()(()(()(((())()))(()(((()((())()(()())())))((()()()(()()(((()))(((()((((()(((((()()(()())((()())())(()((((((()(()()))((((()))))())((())()()((()(()))))((((((((()))(()()(((())())(())()((()()()()((()((()((()()(((())))(()((())()((((((((()((()(()()(((())())())))(())())))()((((()))))))())))()()))()())((()())()((()()()))(()()(((()(())((((())())((((((((()()()()())))()()()((((()()))))))()((((()(((()))(()()())))((()()(((()))()()())())(((())((()()(())()()()(((())))))()())((()))()))((())()()())()())()()(()))())))())()))(())((()(())))(()(())(()))))(()(())())(()(())(()(()))))((()())()))()((((()()))))())))()()())((())()((()()()))()(((()(()))))(())()()))(((()())))))))))(((())))()))())()))))()()(((())))))))()(()()(()))((()))))((())))((()((())))())))()()(()))())()(()((()())(()(()()())())(()()))()))))(()())()()))()()()()))(()(()(()))))))()(()))()))()()(()((())(()(())))()(((())(())())))))()(()(()))))()))(()()()(())()(()(())))()))))()()(((((())))))())()())())())()())()))))()))))))))())()()()()()()())))()))((())()))())))()((())()))))()))())))))))())()()()))()()(()((((()(((((((()(())((()())((()()))()))))(())))()()()(())((())()())))(())))(())))(((()()))()(())(((()(()))((())))())()))((((()))())()))))))))()(())())))(()))()(()()))())()()(())())))())()()(()())))()((()())(()(())(())))))))))))))(()))))()))))))()()())(()(((((()(()())))())()))(()))()))(()()))()())(()))())()(())((()()))))))())))())()(((())))(()(()))()()))()(()))))))((()())(()))))))()())))()()))))))))((((((((()()()(()))))))()())))())))()()((())()))((())(())))())())))()()()((()((()(())))())()(())))))))))()())))()()()()()()))()))((())())(()(()))))))(()()))()))(())))()))))))))))))(()))))))))()))))()))()())()))()()))))))()))))((()))))(()))())()(())))(()())((((()())))()))))(()))()(()()(())))))())))))()))))))())))())))))())))())())))())(()))))(())()(())))())()))((()()))))))())))((())))))))())))(())))))()()())))))())))))()))))))()))()()()(()(((()())())())(()))())))))((()(())(()))))))))(())))()()()())())(()))))()()()))()))())())())()(())))()(((()((((())))))))()))))))))))))))))))))((())()())(()))))()()))))))(()()(())())))())))((())))((())))))))))))))()))))()(()))))))())))))()))(()()())(()())))))))))()))))))(())))))()()))()())(((())))()))(()))))))))(())())))())))())())())()()))((())()(())()())()))()())(())(()))))()())))(()(((()))))))()(()())()()()))()))))))))()()()(())()())()(((((()))()())())(()))))()()()(())))())))()((()())))(()))())()(()())())(()))()()))((()()))((()()()()())))(())()))(()(())))((()()))))))))())))))))())()()))))))))))))))))(())()(())(())()())())()))()(()))))())())))))()())()(()))()()(())))(())())))))(()))))))))))))))())())(())(())))(((()))()))))())((())(()))())))))))())))))())))()))()))))))))))))())()))))()))))((()))(())))()(())))(())()))()))())))())))))))()(()())())))()()())))(())))))(()))))))))))))(()))()))()))())))(((()()()(())((()())))()())(((()))(())()))((()()()())))())(())(()))))()(((((())))(()))())())))))))((((()()()))())())()(()(()())))))))))()())())))(())))()())(((()(())())()()))())())))))))((()())((()()(()))(()(())))()))()))(()))(()))()()(()(((())((((()))()(()))((())()(()(()())()(()))()())))))(()))()))())()())))())))(())))((())(()())))))()))(())(()))()())()(()()((()(()))))))()(())(()())(())()))(((())()))(()()(()()()))))(()(())))()))))())))))())(()()()()()()(((())))(()()))()((())(((((()()())))(()))(()))()()))(((())())()(((()()()()))))(()))(())())))()())(()()())())))))))()))))((())))()())(()))(()(()))())))))())(())))))()()())())()))()()(())))(()))(())((((((())(()))(()))())()))(()()(())))()))(()()))()))()(())))(())))((()(()))(())()()())())))(((()()())(())()))))))()(((()(((((()()(((())(())))())()((()))))((()())()(())(((())))(((()((()(()(()))(()()))())(()))(())(())))()))))))((((()))()((((()(()))()))()()))))()(()(()))()(()((()(((()(()()(((()))))()(((()(()(()(((()(()())())()()(()(()())())(()((((())(()))()))(((((()()())(())()((()()())))()()(((()()))()((((((((()(())))())((()))))(())))(()))))((()((((()()(())(((((()))(((((((((((((()())))((((()(((()((())())()))((()))()(()()((()()()()(()()(()(()(((())()(()((((((()((()()((())()((((()((()()(()()())((()()()((()((())()(()(((()((())((((())(()))((()(()))(()())()((((((((()(((((((((((()))(()(((()(()()()((((())((())()())()))(())((())(()))(((()((()(())))(()))))((()()))))((((()(()(()())(()(())((((((((()((((()((()(((((()))())()(()))(()()((()(())(((((()(())()(((((()()))))))()(((())()(()()((((())()((())((()(((())(((()))((()()((((()(())))))((()((((()((()((()(((())((()))(((((((()(((()((((((((())()))((((())(((((()((((((((()(((()((()(((()()(((()((((((()()(()((((((((()()(()(()(())((((()())()))))(((()))((((())((((()())((()(())()((()((((((()((((((()(())))()())(((())())())()(())()(()())((()()((((())((((((())(()(((((()((((())()((((()(()(())(()())(((())()((())((((()))()((((((())(()(((()(((()((((((()(((()))(()()())())((()((()())()((((())(((()(()(((((((((())(())))()((()()()()(())((()))(((((((()(((((((((()(()))))(()((((((((()((((()((()()((((((()()(((((((()(()(())()(())((()()()((()(((((()())()(((((()())()()((()(()())(()()()(((()()(((((()((((((()()((()(()()()((((((((((((()((((((((()()(((()())))()(((()()(())())((((()((((()((((()()()(())(())((()(()(((((((((((((((()(())(())))))()()))((()(((()(())((()(((()(()()((((()()(((()(((()(((((()()((()(()(((()))((((((()((((((((()((()((())(((((()(((())(())())((()()))((((())()()((()(((()(((((()()(((()))(((()(()(((((((((((((()))((((((((()(((()))))())((((((((((((())((())((()())(((())((())(()((((((((((()(((())((()()(()((())(((((((((((()))((((((((((((()(()())((()((()((()(()(((()((((((((()()(()((()(()(((()))((()))(((((((((((((()(())((((((())(((()(())(()(()(()((()()))((((()((((()((((())))())((((()((((()))((((((()((((((()((()(((())))((())(()))(()((()((((()((()(((()()))((((()()()(((((((())(((())(()))())((((()())(((()(((((((((((()(()(()((()(((((((((((((((()()((((()((((((((()(((()()((()((((()))(((()(())((((((()((((())()((((()((()))(())()(()(((()((())())((((((()(()(())())(((())(()(()())(((((()((()((())()())(())))(((()(())))))))(((()(((()))()((()(((()()((()())()()))())))(((()))(()(((()(((((((((()(()(((((()()(((()())()()))))()(((()))(((()(()(()(()(()))()(())()))(()(((())))(()))))))))))(())((()((())((()(())()(())((()()((((()()((()()))((())(((()((()(())(())))()(()(((((()((()))())()(((((()()(((()(()((((((())(()))(())()))((()(()()))(())())()))(((())))(()((()(((())(())())))((()()((((((((((((((()((()(()()(()(((()))())()()((()()()(())(()))(()())(((())((())()(())()()(()()(())))((()(((()))))(((()()(()()))())((()((())()))((((()()()())((())))(((()(())(((((()(((((()((()(()((((()()(((()()()(((()())(((()()((((())(()))(((()))(())())((()))(((()((()))(((()()((())((()(((((()((((()()())((()))()((((()((()(()()()( diff --git a/2015/day1/part1.py b/2015/day1/part1.py deleted file mode 100644 index e5375aa..0000000 --- a/2015/day1/part1.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 - -with open(input_f) as file: - for line in file: - for idx,i in enumerate(line): - if i == '(': - result += 1 - if i == ')': - result -= 1 -print(result) diff --git a/2015/day1/part2.py b/2015/day1/part2.py deleted file mode 100644 index d2b842d..0000000 --- a/2015/day1/part2.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 - -with open(input_f) as file: - for line in file: - for idx,i in enumerate(line): - if i == '(': - result += 1 - if i == ')': - result -= 1 - if result == -1: - print(idx+1) - break -print(result) diff --git a/2015/day1/test b/2015/day1/test deleted file mode 100644 index 13bf1e2..0000000 --- a/2015/day1/test +++ /dev/null @@ -1 +0,0 @@ -))((((( diff --git a/2015/day2/input b/2015/day2/input deleted file mode 100644 index 908022e..0000000 --- a/2015/day2/input +++ /dev/null @@ -1,1000 +0,0 @@ -3x11x24 -13x5x19 -1x9x27 -24x8x21 -6x8x17 -19x18x22 -10x9x12 -12x2x5 -26x6x11 -9x23x15 -12x8x17 -13x29x10 -28x18x6 -22x28x26 -1x5x11 -29x26x12 -8x28x29 -27x4x21 -12x7x16 -7x4x23 -15x24x8 -15x14x2 -11x6x29 -28x19x9 -10x3x1 -5x20x13 -10x25x1 -22x17x7 -16x29x3 -18x22x8 -18x11x19 -21x24x20 -4x7x17 -22x27x12 -1x26x6 -5x27x24 -29x21x3 -25x30x2 -21x26x2 -10x24x27 -10x16x28 -18x16x23 -6x5x26 -19x12x20 -6x24x25 -11x20x7 -4x8x5 -2x13x11 -11x17x1 -13x24x6 -22x29x16 -4x24x20 -10x25x10 -12x29x23 -23x27x12 -11x21x9 -13x2x6 -15x30x2 -8x26x24 -24x7x30 -22x22x8 -29x27x8 -28x23x27 -13x16x14 -9x28x20 -21x4x30 -21x20x20 -11x17x30 -9x14x22 -20x2x6 -10x11x14 -1x8x23 -23x19x19 -26x10x13 -21x12x12 -25x7x24 -1x28x17 -20x23x9 -2x24x27 -20x24x29 -1x3x10 -5x20x14 -25x21x3 -15x5x22 -14x17x19 -27x3x18 -29x23x19 -14x21x19 -20x8x3 -22x27x12 -24x15x18 -9x10x19 -29x25x28 -14x22x6 -4x19x28 -4x24x14 -17x19x17 -7x19x29 -28x8x26 -7x20x16 -11x26x29 -2x18x3 -12x7x18 -11x15x21 -24x7x26 -2x22x23 -2x30x5 -1x19x8 -15x29x10 -15x26x22 -20x16x14 -25x29x22 -3x13x19 -1x12x30 -3x15x27 -19x9x11 -30x8x21 -26x12x20 -11x17x19 -17x25x1 -19x24x12 -30x6x20 -11x19x18 -18x15x29 -18x8x9 -25x15x5 -15x6x26 -13x27x19 -23x24x12 -3x15x28 -17x10x10 -15x4x7 -15x27x7 -21x8x11 -9x18x2 -7x20x20 -17x23x12 -2x19x1 -7x26x26 -13x23x8 -10x3x12 -11x1x9 -1x11x19 -25x14x26 -16x10x15 -7x6x11 -8x1x27 -20x28x17 -3x25x9 -30x7x5 -17x17x4 -23x25x27 -23x8x5 -13x11x1 -15x10x21 -22x16x1 -12x15x28 -27x18x26 -25x18x5 -21x3x27 -15x25x5 -29x27x19 -11x10x12 -22x16x21 -11x8x18 -6x10x23 -21x21x2 -13x27x28 -2x5x20 -23x16x20 -1x21x7 -22x2x13 -11x10x4 -7x3x4 -19x2x5 -21x11x1 -7x27x26 -12x4x23 -12x3x15 -25x7x4 -20x7x15 -16x5x11 -1x18x26 -11x27x10 -17x6x24 -19x13x16 -6x3x11 -4x19x18 -16x15x15 -1x11x17 -19x11x29 -18x19x1 -1x25x7 -8x22x14 -15x6x19 -5x30x18 -30x24x22 -11x16x2 -21x29x19 -20x29x11 -27x1x18 -20x5x30 -12x4x28 -3x9x30 -26x20x15 -18x25x18 -20x28x28 -21x5x3 -20x21x25 -19x27x22 -8x27x9 -1x5x15 -30x6x19 -16x5x15 -18x30x21 -4x15x8 -9x3x28 -18x15x27 -25x11x6 -17x22x15 -18x12x18 -14x30x30 -1x7x23 -27x21x12 -15x7x18 -16x17x24 -11x12x19 -18x15x21 -6x18x15 -2x21x4 -12x9x14 -19x7x25 -22x3x1 -29x19x7 -30x25x7 -6x27x27 -5x13x9 -21x4x18 -13x1x16 -11x21x25 -27x20x27 -14x25x9 -23x11x15 -22x10x26 -15x16x4 -14x16x21 -1x1x24 -17x27x3 -25x28x16 -12x2x29 -9x19x28 -12x7x17 -6x9x19 -15x14x24 -25x21x23 -26x27x25 -7x18x13 -15x10x6 -22x28x2 -15x2x14 -3x24x18 -30x22x7 -18x27x17 -29x18x7 -20x2x4 -4x20x26 -23x30x15 -5x7x3 -4x24x12 -24x30x20 -26x18x17 -6x28x3 -29x19x29 -14x10x4 -15x5x23 -12x25x4 -7x15x19 -26x21x19 -18x2x23 -19x20x3 -3x13x9 -29x21x24 -26x13x29 -30x27x4 -20x10x29 -21x18x8 -7x26x10 -29x16x21 -22x5x11 -17x15x2 -7x29x5 -6x18x15 -23x6x14 -10x30x14 -26x6x16 -24x13x25 -17x29x20 -4x27x19 -28x12x11 -23x20x3 -22x6x20 -29x9x19 -10x16x22 -30x26x4 -29x26x11 -2x11x15 -1x3x30 -30x30x29 -9x1x3 -30x13x16 -20x4x5 -23x28x11 -24x27x1 -4x25x10 -9x3x6 -14x4x15 -4x5x25 -27x14x13 -20x30x3 -28x15x25 -5x19x2 -10x24x29 -29x30x18 -30x1x25 -7x7x15 -1x13x16 -23x18x4 -1x28x8 -24x11x8 -22x26x19 -30x30x14 -2x4x13 -27x20x26 -16x20x17 -11x12x13 -28x2x17 -15x26x13 -29x15x25 -30x27x9 -2x6x25 -10x26x19 -16x8x23 -12x17x18 -26x14x22 -13x17x4 -27x27x29 -17x13x22 -9x8x3 -25x15x20 -14x13x16 -8x7x13 -12x4x21 -27x16x15 -6x14x5 -28x29x17 -23x17x25 -10x27x28 -1x28x21 -18x2x30 -25x30x16 -25x21x7 -2x3x4 -9x6x13 -19x6x10 -28x17x8 -13x24x28 -24x12x7 -5x19x5 -18x10x27 -16x1x6 -12x14x30 -1x2x28 -23x21x2 -13x3x23 -9x22x10 -10x17x2 -24x20x11 -30x6x14 -28x1x16 -24x20x1 -28x7x7 -1x24x21 -14x9x7 -22x8x15 -20x1x21 -6x3x7 -7x26x14 -5x7x28 -5x4x4 -15x7x28 -30x16x23 -7x26x2 -1x2x30 -24x28x20 -5x17x28 -4x15x20 -15x26x2 -1x3x23 -22x30x24 -9x20x16 -7x15x2 -6x21x18 -21x21x29 -29x10x10 -4x3x23 -23x2x18 -29x24x14 -29x29x16 -22x28x24 -21x18x24 -16x21x6 -3x9x22 -9x18x4 -22x9x9 -12x9x13 -18x21x14 -7x8x29 -28x28x14 -1x6x24 -11x11x3 -8x28x6 -11x16x10 -9x16x16 -6x6x19 -21x5x12 -15x17x12 -3x6x29 -19x1x26 -10x30x25 -24x26x21 -1x10x18 -6x1x16 -4x17x27 -17x11x27 -15x15x21 -14x23x1 -8x9x30 -22x22x25 -20x27x22 -12x7x9 -9x26x19 -26x25x12 -8x8x16 -28x15x10 -29x18x2 -25x22x6 -4x6x15 -12x18x4 -10x3x20 -17x28x17 -14x25x13 -14x10x3 -14x5x10 -7x7x22 -21x2x14 -1x21x5 -27x29x1 -6x20x4 -7x19x23 -28x19x27 -3x9x18 -13x17x17 -18x8x15 -26x23x17 -10x10x13 -11x5x21 -25x15x29 -6x23x24 -10x7x2 -19x10x30 -4x3x23 -22x12x6 -11x17x16 -6x8x12 -18x20x11 -6x2x2 -17x4x11 -20x23x22 -29x23x24 -25x11x21 -22x11x15 -29x3x9 -13x30x5 -17x10x12 -10x30x8 -21x16x17 -1x5x26 -22x15x16 -27x7x11 -16x8x18 -29x9x7 -25x4x17 -10x21x25 -2x19x21 -29x11x16 -18x26x21 -2x8x20 -17x29x27 -25x27x4 -14x3x14 -25x29x29 -26x18x11 -8x24x28 -7x30x24 -12x30x22 -29x20x6 -3x17x1 -6x15x14 -6x22x20 -13x26x26 -12x2x1 -7x14x12 -15x16x11 -3x21x4 -30x17x29 -9x18x27 -11x28x16 -22x3x25 -18x15x15 -2x30x12 -3x27x22 -10x8x8 -26x16x14 -15x2x29 -12x10x7 -21x20x15 -2x15x25 -4x14x13 -3x15x13 -29x8x3 -7x7x28 -15x10x24 -23x15x5 -5x7x14 -24x1x22 -1x11x13 -26x4x19 -19x16x26 -5x25x5 -17x25x14 -23x7x14 -24x6x17 -5x13x12 -20x20x5 -22x29x17 -11x17x29 -25x6x4 -29x8x16 -28x22x24 -24x23x17 -16x17x4 -17x8x25 -22x9x13 -24x4x8 -18x10x20 -21x23x21 -13x14x12 -23x26x4 -4x10x29 -2x18x18 -19x5x21 -2x27x23 -6x29x30 -21x9x20 -6x5x16 -25x10x27 -5x29x21 -24x14x19 -19x11x8 -2x28x6 -19x25x6 -27x1x11 -6x8x29 -18x25x30 -4x27x26 -8x12x1 -7x17x25 -7x14x27 -12x9x5 -14x29x13 -18x17x5 -23x1x3 -28x5x13 -3x2x26 -3x7x11 -1x8x7 -12x5x4 -2x30x21 -16x30x11 -3x26x4 -16x9x4 -11x9x22 -23x5x6 -13x20x3 -4x3x2 -14x10x29 -11x8x12 -26x15x16 -7x17x29 -18x19x18 -8x28x4 -22x6x13 -9x23x7 -11x23x20 -13x11x26 -15x30x13 -1x5x8 -5x10x24 -22x25x17 -27x20x25 -30x10x21 -16x28x24 -20x12x8 -17x25x1 -30x14x9 -14x18x6 -8x28x29 -12x18x29 -9x7x18 -6x12x25 -20x13x24 -22x3x12 -5x23x22 -8x10x17 -7x23x5 -10x26x27 -14x26x19 -10x18x24 -8x4x4 -16x15x11 -3x14x9 -18x5x30 -29x12x26 -16x13x12 -15x10x7 -18x5x26 -14x1x6 -10x8x29 -3x4x9 -19x4x23 -28x17x23 -30x7x17 -19x5x9 -26x29x28 -22x13x17 -28x2x1 -20x30x8 -15x13x21 -25x23x19 -27x23x1 -4x6x23 -29x29x24 -5x18x7 -4x6x30 -17x15x2 -27x4x2 -25x24x14 -28x8x30 -24x29x5 -14x30x14 -10x18x19 -15x26x22 -24x19x21 -29x23x27 -21x10x16 -7x4x29 -14x21x3 -21x4x28 -17x16x15 -24x7x13 -21x24x15 -25x11x16 -10x26x13 -23x20x14 -20x29x27 -14x24x14 -14x23x12 -18x6x5 -3x18x9 -8x18x19 -20x26x15 -16x14x13 -30x16x3 -17x13x4 -15x19x30 -20x3x8 -13x4x5 -12x10x15 -8x23x26 -16x8x15 -22x8x11 -12x11x18 -28x3x30 -15x8x4 -13x22x13 -21x26x21 -29x1x15 -28x9x5 -27x3x26 -22x19x30 -4x11x22 -21x27x20 -22x26x7 -19x28x20 -24x23x16 -26x12x9 -13x22x9 -5x6x23 -20x7x2 -18x26x30 -3x6x28 -24x18x13 -28x19x16 -25x21x25 -25x19x23 -22x29x10 -29x19x30 -4x7x27 -5x12x28 -8x26x6 -14x14x25 -17x17x2 -5x27x11 -8x2x2 -3x20x24 -26x10x9 -22x28x27 -18x15x20 -12x11x1 -5x14x30 -7x3x16 -2x16x16 -18x20x15 -13x14x29 -1x17x12 -13x5x23 -19x4x10 -25x19x11 -15x17x14 -1x28x27 -11x9x28 -9x10x18 -30x11x22 -21x21x20 -2x1x5 -2x25x1 -7x3x4 -22x15x29 -21x28x15 -12x12x4 -21x30x6 -15x10x7 -10x14x6 -21x26x18 -14x25x6 -9x7x11 -22x3x1 -1x16x27 -1x14x23 -2x13x8 -14x19x11 -21x26x1 -4x28x13 -12x16x20 -21x13x9 -3x4x13 -14x9x8 -21x21x12 -27x10x17 -6x20x6 -28x23x23 -2x28x12 -8x10x10 -3x9x2 -20x3x29 -19x4x16 -29x24x9 -26x20x8 -15x28x26 -18x17x10 -7x22x10 -20x15x9 -6x10x8 -7x26x21 -8x8x16 -15x6x29 -22x30x11 -18x25x8 -6x21x20 -7x23x25 -8x25x26 -11x25x27 -22x18x23 -3x2x14 -16x16x1 -15x13x11 -3x9x25 -29x25x24 -9x15x1 -12x4x1 -23x30x20 -3x1x23 -6x10x29 -28x13x24 -4x19x17 -6x6x25 -27x29x17 -12x13x2 -10x7x13 -14x15x8 -22x2x3 -27x17x19 -23x10x16 -5x9x25 -9x25x14 -11x18x6 -18x10x12 -9x4x15 -7x16x14 -17x24x10 -11x4x6 -12x9x17 -22x18x12 -6x24x24 -6x22x23 -5x17x30 -6x9x5 -17x20x10 -6x8x12 -14x17x13 -29x10x17 -22x4x5 -10x19x30 -22x29x11 -10x12x29 -21x22x26 -16x6x25 -1x26x24 -30x17x16 -27x28x5 -30x13x22 -7x26x12 -11x24x30 -1x17x25 -22x1x3 -29x24x6 -4x8x24 -13x9x20 -8x12x9 -21x25x4 -23x23x28 -5x2x19 -29x3x15 -22x1x14 -3x23x30 -8x25x3 -15x8x14 -30x14x6 -23x27x24 -19x1x2 -10x9x13 -13x8x7 -8x13x22 -5x15x20 -17x14x8 -5x11x20 -5x10x27 -24x17x19 -21x2x3 -15x30x26 -21x19x15 -2x7x23 -13x17x25 -30x15x19 -26x4x10 -2x25x8 -9x9x10 -2x25x8 -19x21x30 -17x26x12 -7x5x10 -2x22x14 -10x17x30 -1x8x5 -23x2x25 -22x29x8 -13x26x1 -26x3x30 -25x17x8 -25x18x26 -26x19x15 -8x28x10 -12x16x29 -30x6x29 -28x19x4 -27x26x18 -15x23x17 -5x21x30 -8x11x13 -2x26x7 -19x9x24 -3x22x23 -6x7x18 -4x26x30 -13x25x20 -17x3x15 -8x20x18 -23x18x23 -28x23x9 -16x3x4 -1x29x14 -20x26x22 -3x2x22 -23x8x17 -19x5x17 -21x18x20 -17x21x8 -30x28x1 -29x19x23 -12x12x11 -24x18x7 -21x18x14 -14x26x25 -9x11x3 -10x7x15 -27x6x28 -14x26x4 -28x4x1 -22x25x29 -6x26x6 -1x3x13 -26x22x12 -6x21x26 -23x4x27 -26x13x24 -5x24x28 -22x16x7 -3x27x24 -19x28x2 -11x13x9 -29x16x22 -30x10x24 -14x14x22 -22x23x16 -14x8x3 -20x5x14 -28x6x13 -3x15x25 -4x12x22 -15x12x25 -10x11x24 -7x7x6 -8x11x9 -21x10x29 -23x28x30 -8x29x26 -16x27x11 -1x10x2 -24x20x16 -7x12x28 -28x8x20 -14x10x30 -1x19x6 -4x12x20 -18x2x7 -24x18x17 -16x11x10 -1x12x22 -30x16x28 -18x12x11 -28x9x8 -23x6x17 -10x3x11 -5x12x8 -22x2x23 -9x19x14 -15x28x13 -27x20x23 -19x16x12 -19x30x15 -8x17x4 -10x22x18 -13x22x4 -3x12x19 -22x16x23 -11x8x19 -8x11x6 -7x14x7 -29x17x29 -21x8x12 -21x9x11 -20x1x27 -1x22x11 -5x28x4 -26x7x26 -30x12x18 -29x11x20 -3x12x15 -24x25x17 -14x6x11 diff --git a/2015/day2/part1.py b/2015/day2/part1.py deleted file mode 100644 index c5faa2a..0000000 --- a/2015/day2/part1.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 - -with open(input_f) as file: - for line in file: - tmp = line.rstrip().split('x') - tmp = list(map(int,tmp)) - first = tmp[0] * tmp[1] - second = tmp[1] * tmp[2] - third = tmp[2] * tmp[0] - #2*l*w + 2*w*h + 2*h*l - smallest = min(first,second,third) - #print(first,second, third, smallest) - result = result + (2*first) + (2*second) + (2*third) + smallest - print(result) diff --git a/2015/day2/part2.py b/2015/day2/part2.py deleted file mode 100644 index c18ae81..0000000 --- a/2015/day2/part2.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 - -with open(input_f) as file: - for line in file: - tmp = line.rstrip().split('x') - tmp = list(map(int,tmp)) - first = tmp[0] * tmp[1] - second = tmp[1] * tmp[2] - third = tmp[2] * tmp[0] - #2*l*w + 2*w*h + 2*h*l - smallest = min(first,second,third) - #print(first,second, third, smallest) - tmp.sort() - rib = tmp[0]+tmp[0]+tmp[1]+tmp[1] - bow = tmp[0]*tmp[1]*tmp[2] - result = result + rib + bow - print(result) diff --git a/2015/day2/test b/2015/day2/test deleted file mode 100644 index 5d2a1f2..0000000 --- a/2015/day2/test +++ /dev/null @@ -1,2 +0,0 @@ -2x3x4 -1x1x10 diff --git a/2015/day3/input b/2015/day3/input deleted file mode 100644 index 55f286f..0000000 --- a/2015/day3/input +++ /dev/null @@ -1 +0,0 @@ -^><^>>>^<^v<v^^vv^><<^<><<vv^<>^<^v>^vv<>v><vv^^<>>^^^v<<vv><<^>^<^v<^>^v><<<v^<v<<<v<<vv<v<^><^>><>v>v^<<v^^<^v<><^>^<<^^^>v>>v^^<v>>^>vv><v>>^>>v^>^v>^<^^v>^>^^v<v>^^<v<>>v^^v><^><^<<>v^<^<^v<v>v^>>>v^v^>^<>^v<^^vv<v>^>^<>^^<vv^<><<v<^<^^>vv<>^>v<^>^v>v^>^v<>^><>><vv<>v^v<><>v^v>>>>v^^>^><^^<v<^><^<v>>^v^v<>v<<<^<<vvvv<<v^vv^>v^^^<^^^<v>>v<^v>>>>>v<^^^^>v<^<><v>>>>><v>>v^vvvv^^<v^<>^v<^v^>v><^>^v<<>>vv^>v>v^^>vv^<^vvv<>><>><><^^^<v<>^<^^^<v><^v>>v>^v<v^vv^<>^^^>v^^^v>>^v^^<^>>^>^<<v>>>^^<>>^vv>v^<^>>>><v<><><^^v<><<<<^^<>>^<vvv^><>v<v<<<<><v<<v>v<v^><vv<v^>^<^>v^^><^v>^^>v<>^v^<>^vv^><v^^vv>vvv>v>^<vv^>>^>>^>><>>>^^^^v<vv>^<>v^^><v^>^<>v<^^v><v<<><^v><>^^^^^v^v>>^^v><<><<vv>^^^^><^>v>><<<^v>v^^>^v^<^^v>v<^<<>>^v<<<v<<>>v<^v^><vv<v^v>v^<v>><v>^v<<<vv^>v<v>>v>>v><v><v^>v^^v>^v^>>>><>^>v>^v^>>>>v^<<vv<^v><<>v<v^<^^<<v<^v^^v^>vv><vv<v^<^>><^^>^<><^^<v<><^v^v^<^^>^<v><^<v>v^<<<^^v<v>^v>>><>^^>vv<<^v^<<<<^^>>>v>v<<<>^^>>>v>^>v>vv<<>^<^><v^>^^<^<v<<v<^>>^v^<vvv><>v^><<v>^^<v^vv^^^<vvv^<^>^>vv>><^v<^<<v<><<><<^^<><><vv>v>^<v>>^<>>^^v>vv^<^^v>><^vv^<<v^^><<>vv<v<><v<><v^^^v^v>^v<^<>v^^>><>^<^<v^<v^v^>v<<<^<<^>>>^^<^^v>v^<v>vvvv>v<>><^>^<<<<v^<v<>v^^^v<>v>^<v<<^^v^^<>^<<v^^<^<v>v>>v>>v^>^<vv<<<<<^<><>v><>>>v^>^v<^<><<v<^v^^<^<><^>^^^>^><>^><<vv>^<>vv<<v^v<<<<<>>>v<vv>^v>^>^>^<^><>v<><>>>^^<v>^<^v>>^<><v^><v^>>>v<v^^vvv^><v<v>v^>vvvv>>><^>v<>^^^>v>>v^<v<>v^>^<v^>^<<^>^>>v<<><<v^^>>v^<v^<^v^>^>v^><<^<v>v^<v>>^^<<v>v><<<^v^<>^<>^>>^<<v>^^<>^v<>v^>>><<v>><v^>^><v^<><v><>><v^<>vv>v^<^^^>v>^^<vv>>^v<><>>><>><^<>>v>v^^>^^<^^>^>>v>vv^^v<^<^v><vv<v<^>><<vvv<<><^>^v>^^^<<>v^<v<v><<v>^^v<<<>^^vv<^>vv>^>^<><<>vv<^>v^vv>^^^v><<^vv>^v<><v^^^^v^>vv^^<^<>^^v^<^vv<v<vv<>v>v^^<>^^>^^>^<><<^v>^><^^vvvv<><>^<v^^>v<>^><>v>><>vv^<<><<>><>v<^>^v>>^^v><<<>>^<^v^<v<<<v^>^^<^<><><^><<<<^<vv><v<<><vvv^^><vv>^<<vv<<<^v<>>><><>>v><<<v>vvvv^^vv<v>><<^v^vvv><><vv>v><>v<<<^<v^>><^^>v^<v>><v>^^^v^v>><<<v<^^>>^v<>v^<vv^^<<v<v>v<<<<^^^v^v<<>>>v>>vv>^^<><^v<v><>>v^>>>>>^>v^v^<^v^v^vvv>v<v<^>vv^<<v>vv>>v^^vv<^v>>>>vv<>v<>^^vv^<v>v^>>vvv<<<v<<^vv^^^^>v>v>^><<<^>v^><v<^<<<v>^v^^^><<><<<^^<^^<>^<v>^<v<<v<^^vv>v<^v><v><v<>^v<^<v<^<v^v><v>><v<v<<>^<v<>>><>^v^v<<^><v^<<v<v^>^>v><^>^vv^^<v<v<vv<v>^v^v^>^<<>>>>>v^<>^>v^vv^><<>>^^<>v^><v>^vvv^>v^v><>^><<>v>v<^<^><^^vv<<><>>v>>v><vv>>^v<<>^vv<>^vv>v>v>^>^>>><><<>v<v>^<<^v^^<<<><v>>vv<^<vv<vv^<<v<<^v><<>v<^^^<<^v^>^v>^^^v^v>>>v>v^v>^>^vv<^^<<vv^>^<<<vv>v^<><<^vvv^^><>vv^v>v>^><<^^^^vvv^<vvv>><^v<^>^<>>^<v<<vv>>><v>vv^<>><v^<v>^v>^>v>^<^<^^^<<vvvv^>>>>>>>v><vv>^<>^^v^><>><^v^^<v^v<<<<v^>><>v^v<vv<><^<<<<^>^^>vv>><^v<v^v<<>^vvv>v^^><^^<^<>>^^v^vv<>v<^<<<v^^^><v<vv<<>v>v<>^v^><v^vv^v^^v<^^v^^v><>v<^v>><<^<^v^>><<vv<<^>^<<v^<>^><>v><vv^v>>^<v<<<^>vv<^v>^>v<<v>^>>^>>v^<v<v>>^v<^v^v><<><>^><<<><v<vvvv<v^<v^v><>^<>^^^^v>^>^vvvvv>v>>v><<vv<<v<><<^><<^v><<v<<<v><vv<^>^v>>>>^v<^v<<>>^>^<<vv^<^>v>><<^>^>^v><><>^><<v<>v^><<^v^<^^><^^v^<<^v^^>>^v^<^><vv>v^^<<^^^<><>^>v^v>v^>^v^vv>^^>>>>^^<^>>>^^v<vv<><^^<vvv<^^^vv>v<v<v>><<<>^>^^>^>^v<<<<>>^<<>><v>>v>^^<^v<>v<>v^>v^><^<^^><v^^v>^^vv<v<<>><<vv<>>v>^<<<<v<<v>^><^^<^<^<v^<<^^v>^v<^>v^v^<v^vv^>^^><^>v^v>>^^v^><vv<v<v<v>>>>><<><v><v^v^<v^<^^<v<>^>v>v<>>>v>^^^^>><v^v^^v<<<>v^<<^<v>>>><^v^<<><v<>>v><><v<v^v>^v^^<v<^<^^v>><<vv<<vv><>>^>^>vv<^<>^vvv^v<v^^<>v^v>^^<<<<<>^v^>^<>v^^<>v^v<vv>^<>vv^<^vv>><v^^vvvvv>><<>v<vv^<^<vv^v^<>^^<v^<vv^<v^v^v<<^>^>^>^^>>>vvv>^>v>v>>>^>vv^><>^><>v>^^<v^>^><<v>><<<>>v<vvvv^>^v<^<>^<v>^<>^^<<><>^v<><>>>^vv<^<<^<^v>v<<<<<^^v<^v<><v<<><^>v>^v>>^v^><^^^^v<><><>vv^<>vv<^v<^^><v^<^><^^v^v^<^^<<><v>v<v<v^<<^v><>v^v<^>vvv><<^v>>v><><v<<^>>>v<^>>v>^<>><>^<v^v^<vv<<^>v<^^>^<^v<^<<^^v<>>^>^>^v^^v^v<v^^vv^<v>>v><vv^vv>v<>v^>v^^>^^>><v><v^<<><<>><<^^>><^v<v<><<><<><v<v^<^<v>>>><v^^v^^>>>^^^^^<<vv<^><>^<<<vv^^^>^><<<v<^v>^<v<^>^vvv<<>vv><<>v>v^v>>>>>^<>><^^^><<<<v><<vv>>>v<^<vv^v^<<v>>>>^^vvv>v<>><v>>>v>>^v^vvv<<>vvv<<^^^<>vv^^v<<>^^^>>^<^v^<^^>v^><v>>^<<^v<<vv<vv>v^>>^>v^><^><>^>>>vv>><^^^>vv<<^^vv><^<>^>^^<^<>>^vv^>>^v><>v^>>><<<^^<^>^>v<^>^<^^<>>><^^<>^v^<<vvv<v><>vvv><v>v^v<<^<v>^^><<^vv^v>v>v<<^v^<<<>^><><vvv>v>^vv^v<>vv^>^^<^>^>v^^<vv^>v><v<<<><>>^v<^<><><^<v^^<<^<v>vv<><<>v^<v^>^>^^<><<>^<^<<v^^v<v^<><<>v>><^<<>^>^v^v<v^v><^>>^v<^>v<<>^^^<^v>>>^<v>vvvv<<v^<^^>vvvv>v<>v<v><vvvvv>^<><>vvv<>^<<>^>>>>v^<^<><^v>v^>>v><>^><<v^>^<<>^>^v^<v^^>>^v><v>^<v><>v^<^^>v>^>>>v^v>>>^<>^<>>>>>v>>vv^v<><<<><><v><<vv<<v<><>>vv<^<vv>^v<<>v^v<^v<><v>>^v>>vvv^^v>>v>^>^>v><v><^>^^<<>^v<^<<<<^>v<^>>v^<^v>^v<<>^>^vvv<^^vv>^vv>vv<>>v>v<v>>v^<<<<<^^v^>v>^<<<v^v>>v<v><vvv><v>^<vv><<>>^<^>^^<>>>>^<^v<>v^^>^<^^v<^><>><v>>^v^vv<^v<^><<vvv<>><>><^^>^<^v^<^<>v<<<^v>v^^^<>v^<v^>^v^>><>^^<v<^><<^^v^<>^<^vv>>><^v><v^>vv<^v<<<v^>>v>v^v>^<v>v<^<>v^vvv>^vv<<<<v><^><v>>^^>><^v><<^>v^^<<v^^<^<><<<<>^<v<^v^>v<<^^>v<<<<<vvv<v<^>^>^>^>>^>>>v^<<v>>^^v><vv<^v<v<^^^>>>^vvv<^v<>>>vv>^^><^v>vv^>>v>v^<>^<vv>^>^<<^>^^^>>^vv>^^>vvvv<>>^^^^>>>v>v^^>vv>vv^<<>^><^<v^vvvv><v<><v>><<<v<v<<^v><vv^vv^<>>>^>^<v<^v<>><^<vv^^><v>v^>v^<><v^vvv>^>v^^v^>^^>v<<<<^<<^>>v>v^^^<<<v>>>^^v>v<v><<<<^^^v>^vv^>><>^v<v<<^^<<<<><>>>v>vvv^v^^v^>>vv>^>><>^v><^v^><^^>vv>^<^<^>><v>v>><><><v>^>^>v>vv>vv>^^>v>v^><v<<v^<>^>^v>^^v>^<^v<>>vvv^^>^>vv<v<v<<^<^<v^<>v^^v<^<^>vv^^<v><^^^>v>vv<<v>v<<v^<v^^><vv>^>^v^<^>v<^>^<>vv^><v<^><>>^>>^<^><<>^<^>v>v><>>>^<<^><<v><^v<v><>>vv<^><v^>>v>v>>>>^^>v<^v^>><<^<>>v><^><<^>^<vv^^<><<>><vvvv^>^^<><^^v>^^>vv>^v<v>>^^v^<v<^><^<<>>v^^^<^><^<<><<v<>><<>^v>vvv^vvv^^>>^<^<v>><>^<<<<^^<>>>v^<<^^v>><><<v<^>v>^v<v^>v>vv^><>^><<><^^>^>^<><>><^^<v^v<^><><><v>^<v<<v^<<^^^v<v<^v<>>><^v<<<<>>^v>^^vv^v^<<v>><<<v>vv>>v>>^v^<>>vv^<^>^<<>v<<<^vv<^vv^vv<^v^^^<vv^>v>>v<^^<^^vvv<^^v<>>>^>v^><v>^^><>vv>v>v<<<^^v<^vv^v>^^^>>>^^<>^^<^vvv>><><<><^<v>><<>^>^^<v^v^>vv>vv<v>^^<^^<<><><<v><v^^>v><v><<>v>vvv<^^^^<^>>><<<^^^<^>vv^^v>>v<<v^^<vv^<^>vvv^^v^^<^<vv>v<^<>^<<vv^^>^v>>^><><>v<v<v<>><v>>>^^>>v^><v^^<^>><>v<><<v^v<v<<>>>><>>>>><<^vvv<<><><<>^><><<^^v><<^>v>^>^v>v>>^^<><^>vv<^<^v>v<><^<<v<><^><>^^^<v^<><vvv^^^<>^^v><v<<<v>><>^>^vv<v^<vv>v>v^vv<v^v<v>^v^>v><>v^><>v>^^^^><<vv^><v<<v<^<>^v^^^>^^><<<v<^<v^>^^>v><vvvvv^<^<v^^>v<^v^^vv^<<<<v><^>v>v^v><><v^<<^<<v<^^^>^><v^v^<><><>^v<v>^<>^v>^v>v^<><^><v>>v<<^><^vv^<><^<>><>><v<v><<^^^^>v<^<^vv<><^vv><<^<<v>v^>>^v>^>v^^v>vv<v>v<<v>v<>^>>vv^>>><>^v^^<^>v<<^<^^v^^v^<<v<<v<^v<>vv^<v>><^v<^>>>vv^^<v^<>^^v<v<v>>^><^^^<><<^^>v<<vv>><<vvv>><<v^v^>><>vv^><<^>^><^v<^<^<vv<^^vv>v^v<<<<<<><<vv^vv>vv>v<^><<><><<>>v>><v><^>^v>^v^<>v^^^><^^<<<^vv^vv>^v^vvv^^>v^<v>><^<^<^<>^vv<vv^v^^>^^^>vv^v>>><<<^<>>v>v<^^<><v>>><><^v^^<<><<<>^<^^v^>v<vv^^^^>><v><^<<v<<v<>^>^>>^<>^v><>>^<v<vv^<<^<<>vv^>^^<<<^v<>>^v<>vvv<<^^<<><vvvvv<<^<^^<>>>>^^<><>^><>^v<v^^v<<v^^<^<^>v<v>^v<^>^v<>v^vv<><<v>^vvv<><<^>>^^><><>^<>^>v^^v^><v<><>>v><v^<v<<v>><^v>^<v<^>v<<<>vvv^<^^v<vvv^vv<>^<>^>>v<>^^><><v>>^><^^vv>><<>><v><^><>>^vv>v<vv<>v^v^^v<<^^<vv>v^^vv<<^<<><>^<><v^><^<^<>>^vv<v>v>>^<^vv>^vv^>v>^<><^><^<>v^v^^<^<>^^v>>><^v<>v^v<<^>v><>^^<<v^v<>v^>>v>^<><vv^v<v^<vv<>^>^>^<^>v><<><><><<<>^>><v^^><^>><v>>^v<<<^<<>^><<^>>>>>v<^>v>>v^<v^>^>v^^><>v^v^vvvv<v<v<>v>>><<>^<<vvv><v^v^>v<v^^^>>^<v>>^vv^^<vv><^>>v<v^><vvv<^^>>vv^v<^<>^v^<<v>^<<><<<^vvv^>^^<<>>><v<^>vv<<^<><^v<^<><<^^>vv^v>v^^^>>>>^>vv<<v>v>>^^v^^><>v<<^><^<v^>>^>v^v>><^v^>v<<^<v><^<^<^<>>v^^>><<<>v<v>v<^^>^vv<<<^^<v<>v^^>v<<><^<>^^>^v<>v>><^^^vv^>^><>v^^<v^<>>^<v^^^><v<><vvv>v>^<<^v>^>>>>><^^^<>v<v>>v^^<^v^>>v^<<v^>^>v^v>>>>^>>vv<>^<^v><v^^<>v>v^v>^<>^>v<vv><<v<^v<<^v<<^v^vv<><>^<>>^<>>^<>v^><<>^v>>^^^^<<^v><>^<^>^^v><^^<^<v^<^^v>^v><vv>v<<^>^>><<^^^vvv<<^vv<^^>v^^vv^<^^<<^^>>^^<vv<v<<v^^<<v<^vvv<<><<v>v^>>v^^>v<^>^><v<^>v<v^v<v^^<>v>><<v^v^v<^^^><v>v><^<^vv>^^v>^>v<<^vv><^^^^^^><<^>>>^v<>^^v<<<>><<<v^><>^<<<v>v^>^^^<^><v>^^^v<<>v<v>^<v^>><<^^<<^v<<>^v>>vv>><v<^><v<<<vvv><vv><<^v^^<v^vvv<^v>>v^v<v^v^>>^^v<><^^^<^^>v>^<><v<<v^^>vvv^v^^<v<v^v>^>v^^v<^><v^^<<<<>^^>>^v<><^><^<<^vv^<><<>v^vv^<v^<><<<^^>v<<>>>v<>v<><<<v>^v>^^v>^^>v>^>^>v<>><>^>^>^vvvv<^<v^<>^^^^v>v>><<v>>^<vv>>^<v<^v^vv>><>^^>v^^<<><^<v>><<<<>v>^^><v^^v<<v<><vv^v>^<v^^>v<<<<v^v<<>>vv<v<<<v>v>>v<^v>>v>v^<<<>^>^>^<>v<^^vv><^v<<^v<vvv^vv>v<^<<^^vv^^>vv<^>v>^^<<v^<<^^v<>^>v<<^^<^>^^^v^^<v<^<^>>>v^vv^<^v>^<>^<^<v<^v>>>^<^v<><v<^vv<v>v><v^v^^v<vv><^^<><>^>v<^<^vv>><^v><v<>^<>^^>^<><<<v^>>^<>><<><v>vvv^<<^<vv<v><v<^<<<^>^>>v<^>>vv>^v^^^v<>v<>><>^vv^>vv^ diff --git a/2015/day3/part1.py b/2015/day3/part1.py deleted file mode 100644 index b154e22..0000000 --- a/2015/day3/part1.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 -arr = [] -l = 101 -for i in range(0,l): - arr.append([]) - for j in range(0,l): - arr[i].append('O') - -start=int((l-1)/2) - -X = start -Y = start - -with open(input_f) as file: - for line in file: - tmp = list(line.rstrip()) - arr[X][Y] = 'X' - for idx,i in enumerate(tmp): - if i == '^': - Y -= 1 - if i == '>': - X += 1 - if i == '<': - X -= 1 - if i == 'v': - Y += 1 - - arr[X][Y] = 'X' - -for idx,i in enumerate(arr): - for jdx,j in enumerate(i): - if arr[idx][jdx] == 'X': - result += 1 -print(result) diff --git a/2015/day3/part2.py b/2015/day3/part2.py deleted file mode 100644 index 340ae93..0000000 --- a/2015/day3/part2.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/python3 - -import sys -from pprint import pprint - -input_f = sys.argv[1] - -result = 0 -arr = [] -l = 101 -for i in range(0,l): - arr.append([]) - for j in range(0,l): - arr[i].append('O') - -start=int((l-1)/2) - -X = start -Y = start - -rX = start -rY = start - -with open(input_f) as file: - for line in file: - tmp = list(line.rstrip()) - arr[X][Y] = 'X' - arr[rX][rY] = 'X' - for idx,i in enumerate(tmp): - if idx % 2 == 0: - if i == '^': - Y -= 1 - if i == '>': - X += 1 - if i == '<': - X -= 1 - if i == 'v': - Y += 1 - else: - if i == '^': - rY -= 1 - if i == '>': - rX += 1 - if i == '<': - rX -= 1 - if i == 'v': - rY += 1 - - arr[X][Y] = 'X' - arr[rX][rY] = 'X' - -for idx,i in enumerate(arr): - for jdx,j in enumerate(i): - if arr[idx][jdx] == 'X': - result += 1 -print(result) diff --git a/2015/day3/test1 b/2015/day3/test1 deleted file mode 100644 index a7e30de..0000000 --- a/2015/day3/test1 +++ /dev/null @@ -1 +0,0 @@ -^v diff --git a/2015/day3/test2 b/2015/day3/test2 deleted file mode 100644 index c59f4bf..0000000 --- a/2015/day3/test2 +++ /dev/null @@ -1 +0,0 @@ -^>v< diff --git a/2015/day3/test3 b/2015/day3/test3 deleted file mode 100644 index 8a6e322..0000000 --- a/2015/day3/test3 +++ /dev/null @@ -1 +0,0 @@ -^v^v^v^v^v