문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
- 프로세스 담은 큐 생성
- 편의를 위해 프로세스를 알파벳으로 처리하지 않고 그냥 숫자로 처리했다.
- 우선순위 배열 큐로 변환
- 수행되지 않은 프로세스가 남아있을 때 까지 프로세스와 우선순위 pop
- pop했다면 남은 우선순위를 모두 돌면서 더 높은 순위가 있다면 다시 삽입
- 우선순위를 끝까지 돌았으나 더 높은 순위가 없다면 result에 넣기
- 모든 프로세스가 끝났다면 resut에서 location이 있는 인덱스 찾아서 반환 후 1 더하기
- 프로세스를 0부터 넣었는데 순서는 1부터 시작하므로 1 더해주면 됨
코드
from collections import deque
def solution(priorities, location):
answer = 0
result = []
# process 큐 생성
process = deque()
for i in range(len(priorities)):
process.append(i)
# priorities 큐로 만들기
priorities = deque(priorities)
while process:
pc = process.popleft()
p = priorities.popleft()
for i in range(len(priorities)):
if p < priorities[i]:
process.append(pc)
priorities.append(p)
break
else:
result.append(pc)
return result.index(location) + 1
설명에 나와있는대로 큐를 사용해서 구현하면 되는 간단한 문제
'Algorithm > Stack & Queue' 카테고리의 다른 글
| [Python] 백준 2493번 탑 (9) | 2024.10.07 |
|---|---|
| [Python] 프로그래머스 주식가격 (1) | 2024.07.19 |
| [Python] 프로그래머스 기능개발 (0) | 2024.07.17 |
| [Python] 백준 9935번 문자열 (0) | 2024.07.15 |
| [JAVA] 백준 1715번 카드 정렬하기 (1) | 2023.12.13 |