from utils import read_input, print_answers from math import floor lines = read_input('01.txt') def calc_fuel(x): return floor(int(x)/3) - 2 # Part 1 result_01 = sum(map(calc_fuel, lines)) # Part 2 result_02 = 0 for n in lines: n = int(n) while n > 0: n = calc_fuel(n) if n > 0: result_02 += n # Results print_answers(result_01, result_02)
from utils import get_data, answers, print_answers data = get_data(2020, 10).split('\n') adapters = [0] + list(sorted(map(int, data))) adapters.append(max(adapters) + 3) jolts = {'1': 0, '3': 0} index = 1 while index < len(adapters): difference = adapters[index] - adapters[index - 1] jolts[str(difference)] += 1 index += 1 answers['first'] = jolts['1'] * jolts['3'] ways = [1] for i, adapter in enumerate(adapters): if i == 0: continue ways.append(0) x = i - 1 while x >= 0 and adapter - adapters[x] <= 3: ways[i] += ways[x] x -= 1 answers['second'] = ways[-1] print_answers(answers)
if not question: continue datain = safe_prompt(session, "Question type [%s]: " % question.qtype) if datain: question.qtype = datain session.add(question) session.commit() print question.question datain = safe_prompt(session, "Question: [%s]" % question.question) if datain: question.question = datain session.add(question) session.commit() print_answers(session, question) if safe_prompt(session, "Edit answers? ") in ("Y",'y','Yes','yes'): while True: answer = select_answer(session, question) if not answer: break datain = safe_prompt(session, "Answer text [%s]: " % answer.answer_text) answer.answer_text = datain session.add(answer) session.commit() if safe_prompt(session, "Add answers? ") in ("Y",'y','Yes','yes'): answer_id = int(1) while True: answer = safe_prompt(session, 'Answer %s: ' % answer_id) if not answer: break