Skip to content

Instantly share code, notes, and snippets.

@JoshuaPaulBarnard
Last active March 14, 2024 04:41
Show Gist options
  • Save JoshuaPaulBarnard/4fc9106a1210e029a8dcb03bd62121f4 to your computer and use it in GitHub Desktop.
Save JoshuaPaulBarnard/4fc9106a1210e029a8dcb03bd62121f4 to your computer and use it in GitHub Desktop.
Create Staircase
# A staircase is a list of lists where list 0 has length 1, and every list i+1 is one item longer than list i.
def create_staircase(integers):
integers.sort(reverse=True) # Sort the integers in descending order
staircase = [] # Initialize the staircase as an empty list
while len(integers) != 0 : # Continue until the list of integers is empty
sublist_length = len(staircase) + 1 # Determine the length of the next sublist
sublist = integers[:sublist_length] # Extract integers for the next sublist
# Check if the sublist length matches the expected length
if len(sublist) != sublist_length:
return False # Unable to form a staircase
staircase.append(sublist) # Add the sublist to the staircase
integers = integers[sublist_length:] # Remove integers used in the sublist from the original list
return staircase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment