-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolve_problems.py
More file actions
29 lines (21 loc) · 1.08 KB
/
solve_problems.py
File metadata and controls
29 lines (21 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from collections import namedtuple
from contexttimer import Timer
import time
from names_scores.names_scores import solve_problem as solve_names_problem
from xor_decryption.xor_decryption import solve_problem as solve_xor_problem
from laser_reflections.laser_reflections import solve_problem as solve_laser_problem
Problem = namedtuple('Problem', ['number', 'description', 'solution_function'])
def solve_all_problems():
problems = [Problem(22, 'Names Scores', solve_names_problem),
Problem(59, 'XOR Decryption', solve_xor_problem),
Problem(144, 'Laser Beams', solve_laser_problem)]
for problem in problems:
print 'Problem {number} - {description}'.format(number=problem.number,
description=problem.description)
with Timer() as timer:
answer = problem.solution_function()
print ' Answer: {answer}'.format(answer=answer)
print ' Time: {time} seconds'.format(time=round(timer.elapsed, 3))
print ''
if __name__ == '__main__':
solve_all_problems()