https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3
풀이 - 나의 생각
우선 순위가 높은 프로세스부터 시작되어야 하니까
주어진 프로세스의 우선 순위을 내림차순으로 정렬합니다.
그 다음 deque에 기존 프로세스들의 우선순위와 위치를 저장합니다.
문제에서 원하는 location에 있는 프로세스를 추적하기 위해서입니다.
방법은
from collections import deque
def solution(priorities, location):
dq = deque((process, idx) for idx, process in enumerate(priorities))
from collections import deque
def solution(priorities, location):
dq = deque()
for idx, process in enumerate(priorities):
dq.append([process, idx])
편한 걸로 하시면 됩니다.
그리고 deque를 순회하면서
조건에 맞는 프로세스를 찾으면 문제는 끝납니다.
코드
from collections import deque
def solution(priorities, location):
#우선순위 개수 세기
prioritiesCnt = sorted(priorities, reverse = True)
#우선순위와 위치 기록
dq = deque((process, idx) for idx, process in enumerate(priorities))
cnt = 0
while dq:
now = dq.popleft()
#우선순위 이면
if now[0] == prioritiesCnt[cnt]:
cnt+=1
#찾는 프로세스이면
if now[1] == location:
return cnt
else:
dq.append(now)
return -1
728x90
'프로그래머스 > Lv.2' 카테고리의 다른 글
2023 KAKAO BLIND RECRUITMENT > 이모티콘 할인행사 - Python, product, 조합 (0) | 2024.11.23 |
---|---|
더 맵게 - Python, heap (0) | 2024.11.16 |
기능개발 - Pyton, Deque, Math.ceil (0) | 2024.11.13 |
게임 맵 최단거리 - Python, deque, bfs (1) | 2024.11.10 |
코딩테스트 연습 > 전력망을 둘로 나누기 (완탐, BFS) (0) | 2024.02.22 |