레벨2 문제
def solution(priorities, location):
cnt = 0
while True:
key = priorities[location]
# [0]이 max 값일때
if (priorities[0] == max(priorities)):
cnt += 1
# location 값일때
if (location == 0):
break
# 다른 값일때
else:
priorities.pop(0)
location -= 1
# 출력 안함
else:
# key가 맨 앞일때
if (location == 0):
location = len(priorities)-1
priorities.append(priorities.pop(0))
# key가 맨 앞이 아닐때
else:
priorities.append(priorities.pop(0))
location -= 1
return cnt
<while문>
1. 첫번째 값이 최대값이면, cnt에 1을 더해준다.
a) location 값이면, 반복문을 종료한다.
b) location 값이 아니면, 첫번째 값을 삭제하고 location에 1을 빼준다.
def solution(priorities, location):
queue = [(i, p) for i, p in enumerate(priorities)]
answer = 0
while True:
cur = queue.pop(0)
if any(cur[1] < q[1] for q in queue):
queue.append(cur)
else:
answer += 1
if cur[0] == location:
return answer