베라는 새로운 정렬 알고리즘을 만들었다. 그 알고리즘이 몇 단계를 거치는지 세려고 베라가 작성한 파이썬 함수는 다음과 같다.
def steps(array):
if len(array) == 0:
return 0
pivot = array[0]
count = 0
lesser = []
greater = []
for element in array:
count += 1
if element < pivot:
lesser.append(element)
elif element > pivot:
greater.append(element)
return count + steps(lesser) + steps(greater)
크기가 N인 순열 P는 정수열 P1,P2,…,PN이며, 원소는 모두 다르고 각각 N 이하의 양의 정수다.
정수 N과 K가 주어진다. steps(P)가 K를 반환하는 크기 N의 순열 P가 몇 개인지 세어라. 답이 클 수 있으므로 109+7로 나눈 나머지를 출력한다.