Skip to content

Commit e53c768

Browse files
committed
test: locker problem
1 parent b620b38 commit e53c768

2 files changed

Lines changed: 31 additions & 12 deletions

File tree

algorithms/sequences/lockers.py

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,27 @@
2020

2121
STUDENTS = 100
2222

23-
lockers = [0] * 100
24-
25-
for student in range(1, STUDENTS + 1):
26-
for i, locker in enumerate(lockers):
27-
if (i + 1) % student == 0:
28-
if lockers[i] == 0:
29-
lockers[i] = 1
30-
elif lockers[i] == 1:
31-
lockers[i] = 0
32-
33-
open_lockers = [i + 1 for i, locker in enumerate(lockers) if locker == 1]
34-
print(open_lockers)
23+
24+
def solve_locker_problem():
25+
lockers = [0] * 100
26+
27+
for student in range(1, STUDENTS + 1):
28+
for i, locker in enumerate(lockers):
29+
if (i + 1) % student == 0:
30+
if lockers[i] == 0:
31+
lockers[i] = 1
32+
elif lockers[i] == 1:
33+
lockers[i] = 0
34+
35+
open_lockers = [i + 1 for i, locker in enumerate(lockers) if locker == 1]
36+
37+
return open_lockers
38+
39+
40+
def main():
41+
solution = solve_locker_problem()
42+
print(solution)
43+
44+
45+
if __name__ == '__main__':
46+
main()
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from algorithms.sequences.lockers import solve_locker_problem
2+
3+
4+
def test_solve_locker_problem():
5+
solution = solve_locker_problem()
6+
7+
assert solution == [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

0 commit comments

Comments
 (0)