day 01
This commit is contained in:
46
01/part01.py
Executable file
46
01/part01.py
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import re
|
||||
import argparse
|
||||
|
||||
DIRECTIONS = [
|
||||
{'dir': 'N', 'V': 1, "H": 0 },
|
||||
{'dir': 'W', 'V': 0, "H": -1 },
|
||||
{'dir': 'S', 'V': -1, "H": 0 },
|
||||
{'dir': 'E', 'V': 0, "H": 1 }
|
||||
]
|
||||
DIRECTION_CHANGE = {
|
||||
'L': -1,
|
||||
'R': 1
|
||||
}
|
||||
|
||||
|
||||
def load_file(filename):
|
||||
with open(filename) as f:
|
||||
data = f.read()
|
||||
return data
|
||||
|
||||
def main(args):
|
||||
DIRECTION_INDEX = 0
|
||||
MAP_POSITION = [0, 0]
|
||||
|
||||
for INDICE in load_file(args.input).split(','):
|
||||
INDICE = INDICE.strip()
|
||||
TURN = INDICE[0]
|
||||
STEP = int(INDICE[1:].strip())
|
||||
DIRECTION_INDEX = DIRECTION_INDEX + DIRECTION_CHANGE[TURN]
|
||||
if DIRECTION_INDEX < 0:
|
||||
DIRECTION_INDEX = len(DIRECTIONS) - 1
|
||||
if DIRECTION_INDEX >= len(DIRECTIONS):
|
||||
DIRECTION_INDEX = 0
|
||||
MAP_POSITION[0] = MAP_POSITION[0] + DIRECTIONS[DIRECTION_INDEX]['V']*STEP
|
||||
MAP_POSITION[1] = MAP_POSITION[1] + DIRECTIONS[DIRECTION_INDEX]['H']*STEP
|
||||
|
||||
print("%d" % (abs(MAP_POSITION[0]) + abs(MAP_POSITION[1])))
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description='AdventOfCode 2016 Day 01')
|
||||
parser.add_argument('--input', '-i', action='store', required=True, help='input file')
|
||||
args = parser.parse_args()
|
||||
|
||||
main(args)
|
||||
Reference in New Issue
Block a user