find_ins_idx 함수로 a[0]이 어디에 들어가야할지 위치를 반환해준다.
1) a = [3,5,2,1,4]
result = [ ]
while a: -> 리스트 a가 빈 값(False)가 나올 때 까지
value = a.pop[0] = 3
ins_idx = find_ins_idx([ ], 3)
= for i in range(0,0) = for문 실행되지 않음
= return len(r) (리스트가 비어있으므로)
= 0
result.insert(0,3) #0자리에 3을 삽입
result = [3]
2) a = [5,2,1,4]
value = a.pop[0] = 5
ins_idx = find_ins_idx([3],5)
= for i in range(0,1)
= i가 0일때,
if 5 < r[0]: #5<3 해당안됨
= return len(r)
= 1
result.insert(1,5) #1자리에 5를 삽입
result = [3,5]
3) a = [2,1,4]
value = a.pop[0] = 2
ins_idx = find_ins_idx([3,5],2)
= for i in range(0,2)
= i가 0일때,
if 2 < r[0]: #2<3 해당됨
= return 0
result.insert(0,2) #0자리에 2를 삽입
result = [2,3,5]
4) a = [1,4]
value = a.pop[0] = 1
ins_idx = find_ins_idx([2,3,5],1)
= for i in range(0,3)
= i가 0일때,
= if 1 < r[0]: #1<2 해당됨
= return 0
result.insert(0,1) #0자리에 1을 삽입
result = [1,2,3,5]
5) a = [4]
value = a.pop[0] = 4
ins_idx = find_ins_idx([1,2,3,5],4]
= for i in range(0,4):
= i가 0일때,
= if 4 < r[0]: #4<1 해당안됨
= i가 1일때,
= if 4 < r[1]: #4<2 해당안됨
= i가 2일때,
= if 4 < r[2]: #4<3 해당안됨
= i가 3일때,
= if 4 < r[3]: #4<5 해당됨
= 3
result.insert(3,4) #3자리에 4를 삽입
result = [1,2,3,4,5]
6) a = [ ]
이므로 while이 False이므로 실행안됨.
return result
이므로 결과는 result = [1,2,3,4,5]