解题思路

使用bisect模块,创建新的有序数组,数字在原数组中的位置与新的有序数组中的位置差,即为移动次数。
    其中,通过bisect.bisect_left() 返回插入的位置。
    通过 bisect.insort()插入数组并排序。

完整代码

import bisect
n = int(input())
nums = []
for _ in range(n):
  nums.append(int(input()))
result = 0
lst = [nums[0]]
for i in range(1, n):
  idx = bisect.bisect_left(lst, nums[i])
  bisect.insort(lst, nums[i])
  result += i - idx  
print(result)
'''
num = sorted(nums)
i = 0
while i < n:
  idx = num.index(nums[i])
  i += 1
  result += idx
  num = num[0: idx] + num[idx + 1:]
print(result)
'''