내 정답:
def rearrange(priorities, location):
for i in range(len(priorities)):
if priorities[i] == max(priorities):
priorities = priorities[i:]+priorities[:i]
location = location - i
break
return location, priorities
def resetLocation(location, length):
if location < 0:
location += length
return location
def solution(priorities, location):
t = 1
pr = priorities[location]
if max(priorities) != pr:
while max(priorities) != pr:
location, priorities = rearrange(priorities,location)
location = resetLocation(location, len(priorities))
priorities.pop(0)
location -= 1
print(priorities)
t += 1
print(location)
for i in range(location):
if priorities[i] == pr:
t += 1
return t
다른 사람들의 정답:
훨씬 간결하고 좋은 정답
any는 반복 가능 객체 중 참인 요소가 있으면 True를 반환하는 내장 함수이다.
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