Test day and free practice
What CodeSignal publishes about the day itself:
- Web search is allowed for syntax only. AI is not allowed, even for syntax.
- You code in its IDE, which has autocomplete. Outside IDEs are not allowed.
- The test is proctored: camera, microphone, screen and a photo of your ID, with human review. The timer starts after setup, so you don't need to rush through it.
- Retakes are limited by a cooldown: 1 to 3 attempts per rolling 180 days, and you need a new invitation.
Before the day, try CodeSignal's own free practice, which has one question per type:
https://app.codesignal.com/assessments/practice
Constrictor is not affiliated with CodeSignal, and our questions are our own. Rules can change, so check its help center and your invitation too.
In the visual, watch done count the setup checks. The timer only starts after the last one.
See it run
checks = ["camera", "microphone", "screen", "ID photo"] done = 0 for item in checks: done += 1 print("Timer starts after", done, "checks")
The published setup steps, as a list. Setup does not use up your test time.
Practice test day and free practice
Exercise 1
needed lists the setup steps for a test and done lists the ones you have finished, in any order.
Return a list of the steps still to do, in the same order as needed.
Rules:
donemay contain steps that are not inneeded; ignore those.- If nothing is left, return
[].
Constraints: 0 ≤ len(needed), len(done) ≤ 100. Steps in needed are all different.
Example: solution(["camera", "microphone", "screen"], ["screen"]) returns ["camera", "microphone"].
Exercise 2
This exercise uses a simplified retake rule. Days are whole numbers. attempts lists the days you sat a test, and an attempt still counts against you while it is fewer than 180 days old (today - day < 180).
Return True if you may sit another attempt today, which means the number of attempts that count is below limit. Otherwise return False.
Rules:
- An attempt exactly 180 days old no longer counts.
- Empty
attemptsgivesTrue.
Constraints: 0 ≤ len(attempts) ≤ 100; 0 ≤ attempts[i] ≤ today ≤ 10^5; 1 ≤ limit ≤ 3.
Example: solution([10, 100], 200, 2) returns True: the attempt on day 10 is 190 days old, so only one counts.
Exercise 3
log lists your practice runs as [pattern, minutes] pairs, and target is your goal in minutes. A pattern's best time is its lowest number of minutes.
Return a list of the patterns whose best time is above target, sorted alphabetically.
Rules:
- A best time equal to
targetmeets the goal. - A pattern appears at most once in the answer.
- Empty
loggives[].
Constraints: 0 ≤ len(log) ≤ 1000; patterns are non-empty lowercase strings; 1 ≤ minutes, target ≤ 300.
Example: solution([["grids", 14], ["hashing", 9], ["grids", 12]], 10) returns ["grids"].
The explanation and tasks are public. Running this lesson requires an account with course access.
Practice
Loading Python…Visualizer Watch your code run line by line
Run your code, then choose Play to follow its execution.