except AttributeError: return False def validateEyeColor(self): return self.Eye_Color in ['amb', 'blu', 'brn', 'gry', 'grn', 'hzl', 'oth'] def validatePID(self): try: search(r'^\d{9}$', self.Passport_ID).group(0) return True except AttributeError: return False passportraw = '' count = 0 for line in iter_input(4): if line == '\n': pport = passport(passportraw) if pport.validate(): count += 1 passportraw = '' else: passportraw += f' {line}' else: pport = passport(passportraw) if pport.validate(): count += 1 passportraw = '' print(count)
#!python from helpers import iter_input inputdata = [int(line.strip()) for line in iter_input(1)] def answer(): for num in inputdata: diff = 2020 - num if diff in inputdata: return diff * num print(answer())
#!python3 from helpers import iter_input "shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags." input_data = {} for item in iter_input(7): key, rules = item.split("s contain ") input_data[key] = {} if "no other bags" not in rules: for rule in rules.split(', '): rule = rule.replace('bags', 'bag').replace('.', '') num = rule.split()[0] bag = " ".join(rule.split()[1:]) input_data[key][bag] = num def solveSevenTwo(): containers = ["shiny gold bag"] def getContainers(): global containers for bagtype in containers: for bag, number in input_data[bagtype].items(): for x in range(int(number)): containers.append(bag) getContainers() containers.pop(0) return len(containers)
#!python from helpers import iter_input def validate(passline): rawreq, password = passline.split(':') reqrange, reqletter = rawreq.split() req1, req2 = [int(value) for value in reqrange.split("-")] if (password[req1] == reqletter) != (password[req2] == reqletter): return True else: return False count = 0 lines = 0 for line in iter_input(2): if validate(line): count += 1 print(count)
#!python from helpers import iter_input boardingIDs = [] for line in iter_input(5): row = int(line[:7].replace('F', '0').replace('B', '1'), 2) col = int(line[7:].replace('L', '0').replace('R', '1'), 2) boardingIDs.append(row * 8 + col) print(max(boardingIDs))
#!python3 from helpers import iter_input, iter_test program = [] for line in iter_input(8): program.append(line) class interpreter(): def __init__(self): self.program = False self._accumulator = 0 def loadProgram(self, program): self.program = program self._programLength = len(self.program) def run(self, command=None): if self.program: self._currentLine = 0 self._accumulator = 0 self.linesrun = [] while self._currentLine < self._programLength: self._runCommand(self.program[self._currentLine]) print(self._accumulator) elif command: self._runCommand(command) else: raise SyntaxError("No command to run.")
def __init__(self): self.fullmap = [] for line in iter_input(3): self.fullmap.append(line.strip("\n")) self.mapWidth = len(self.fullmap[0]) self.maplen = len(self.fullmap)
from helpers import iter_input, iter_test rawdata = [] for line in iter_input(9): rawdata.append(int(line)) def validate(preambleLen): preamble = rawdata[:preambleLen] data = rawdata[preambleLen:] for checknum in data: for prenum in preamble: if checknum - prenum in preamble: preamble.pop(0) preamble.append(checknum) break else: continue else: return (checknum) def crack(BadVal, rawdata): for index in range(len(rawdata)): check = [] for offset in range(len(rawdata) - index): check.append(rawdata[index + offset]) if sum(check) > BadVal: break elif sum(check) == BadVal: