def solution(priorities, location):
answer = 0 #프린트 한 횟수
# 다 뽑을 떄 까지(프린트 대기 문서가 있는 동안)
while priorities:
length=len(priorities)
# 지금 뽑을지말지 고민하는 문서
cur=priorities.pop(0)
# 일단 pop 했으니까 위치 -1
location-=1
# 우선순위 문서가 있는지 확인
for j in priorities:
#있으면
if cur<j:
# 고민하던 문서 넣고
priorities.append(cur)
# 뽑은게 아니기 때문에 위치 맨 뒤로
if location==-1:
location=length-1
break
# 만약 길이가 달라졌으면 뽑힌거니까
if length!=len(priorities):
#뽑은 갯수+1
answer+=1
# 원하는 문서를 뽑았으면
if location==-1:
#몇번째로 뽑았는지 return
return answer
return answer
any 사용
python에는 any(), all() 함수가 있음
any(): 하나라도 True 인게 있으면 True
all(): 모두 True면 True 반환
cur = 3
temp = [1,3,6,2]
if any(cur<num for num in temp):
print("There exist number that is larger than 3")
와 같은 방법으로 사용할 수 있다.
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