1. 문제
2. 풀이 과정
방법 1) 큐에서 하나 꺼낼 때마다 location을 1 감소시켜서 현재 위치를 업데이트한다.
from collections import deque
def solution(priorities, location):
Q = deque()
for i in priorities:
Q.append(i)
count = 0
while Q:
a = Q.popleft()
if Q and a < max(Q):
Q.append(a)
else:
count += 1
if location == 0:
return count
location -= 1
if location < 0 : location = len(Q)-1
return count
방법 2) 큐에 처음 인덱스 정보와 데이터를 함께 저장하고, any를 이용하여 큐에 우선순위가 자신보다 높은 값이 있는지 검사한다.
from collections import deque
def solution(priorities, location):
answer = 0
Q = deque()
for i, j in enumerate(priorities):
Q.append((i, j))
while Q:
a = Q.popleft()
if any(a[1] < b[1] for b in Q):
Q.append(a)
else:
answer += 1
if a[0] == location:
break
return answer
'코딩문제풀이 > 프로그래머스' 카테고리의 다른 글
[Python] 주식 가격 (0) | 2021.08.26 |
---|---|
[Python] 다리를 지나는 트럭 (0) | 2021.08.25 |
[Python] 기능 개발 (0) | 2021.08.24 |
[Python] 위장 (0) | 2021.08.24 |
[Python] 전화번호 목록 (0) | 2021.08.24 |