https://www.hackerrank.com/challenges/insertion-sort/problem
def insertionSort(arr):
tmp_arr = [0]
tmp_arr.extend(arr)
cnt = 0
for i in range(2, len(tmp_arr)):
for j in range(0, i):
if tmp_arr[i] < tmp_arr[j]:
tmp_arr = tmp_arr[:j]+[tmp_arr[i]]+tmp_arr[j:i]+tmp_arr[i+1:]
cnt += (i-j)
return cnt
from bisect import bisect_right
from array import array
def insertionSort(arr):
tmp_arr = array('i', [arr[0]]) # array 초기화
cnt = 0
for i in range(1, len(arr)):
idx = bisect_right(tmp_arr, arr[i]) # arr[i]의 위치찾기
tmp_arr.insert(idx, arr[i]) # array에 arr[i] 넣기 # insert(위치, 값)
cnt += abs(i-idx)
return cnt