https://school.programmers.co.kr/learn/courses/30/lessons/42587
문제 해결을 위한 과정
이 문제는 deque를 이용하면 쉽게 해결할 수 있는 문제였습니다. 과정은 다음과 같습니다.
1. priorities 배열을 조회하며 인덱스를 포함한 pair형태로 deque에 넣어준다.
2. 그 후 반복문으로 조회를 하면서 맨 앞에 원소와 인덱스 값을 꺼낸 뒤 다시 한번 for문으로 조회를 하며 deque내부에 더 높은 우선순위가 있는지 찾는다.
3. 더 높은 우선순위가 있다면 append로 뒤에 넣어준다.
4. 더 높은 우선순위가 없다면 처리한다.
4-1. 단 이때 처리된 인덱스가 location과 일치하는지 확인한다.
소스코드
from collections import deque
def solution(priorities, location):
answer = 0
q = deque()
for i in range(len(priorities)):
q.append((priorities[i], i))
ans = 0
while len(q) != 0:
now, idx = q.popleft()
flag = True
for i in range(len(q)):
next, nIdx = q[i]
if next > now:
q.append((now, idx))
flag = False
break
if flag == True:
ans += 1
if idx == location:
answer = ans
break
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 소수 찾기 (Python) (0) | 2024.04.18 |
---|---|
프로그래머스 소수 찾기 (Python) (0) | 2024.04.17 |
프로그래머스 이중우선순위큐 (Python) (0) | 2024.04.14 |
프로그래머스 올바른 괄호 (Python) (0) | 2024.04.13 |
프로그래머스 디스크 컨트롤러 (Python) (0) | 2024.04.13 |