def solution(priorities, location):
answer = 0
arr1 = [c for c in range(len(priorities))]
arr2 = priorities
i = 0
while True:
if arr2[i] < max(arr2[i+1:]):
arr1.append(arr1.pop(i))
arr2.append(arr2.pop(i))
else:
i += 1
if arr2 == sorted(arr2, reverse = True):
break
return arr1.index(location) + 1
스택과 큐의 문제라는 생각으로 풀면 쉽게 풀 수 있는 문제이다. arr1에는 priorities의 인덱스를 넣어주고 arr2에는 priorities를 얕은복사를 해준다. 그 후 인덱스를 지칭하는 변수 i를 0으로 초기화 해주고 while True로 반복문을 돌린다. 여기서 arr2의 인덱스를 i와 i+1에서 끝까지의 최댓값 max(arr2[i+1:])를 비교하여 max(arr2[i+1:])가 더 크다면 그 인덱스를 pop하여 arr2의 맨 뒤에 append를 해주고 그 인덱스의 리스트인 arr1도 똑같이 해준다. 그러고 arr2의 값이 priorities의 내림차순과 똑같아 질때 break해서 while문을 끝내고 location의 값을 arr1의 인덱스에서 +1하여 return 해준다.