-
[Python] Programmers 프린터알고리즘/문제풀이 2021. 9. 28. 13:35728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42587
2. 문제 요약
3. 아이디어 정리
- 덱을 사용하여 앞에 있는 문서를 꺼낼 수 있도록 합니다.
- 가장 앞에 있는 것과 max 문서를 비교하여 더 중요한 문서가 있는 경우 맨 뒤로 보냅니다.
- 아닌 경우 내가 요청한 문서인지 확인합니다.
4. 문제 풀이
4-1. 내 풀이
import collections def solution(priorities, location): answer = 0 priorities = [(x, i) for i, x in enumerate(priorities)] # 각 우선 순위의 인덱스와 원소를 튜플로 저장함 priorities = collections.deque(priorities) # 앞에서 제거해야함 > 덱 사용 while priorities: priority = priorities.popleft() if priorities and max(priorities)[0] > priority[0]: # 가장 큰 수 > 왼쪽 원소: 맨 뒤로 해당 원소를 보냄 priorities.append(priority) else: # location 동일한 경우, 그만 answer += 1 if location == priority[1]: break return answer
5. 결론
- 덱 사용 문제
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 2812 크게 만들기 (0) 2021.09.28 [Python] 백준 5397 키로거 (0) 2021.09.28 [Python] Programmers 기능개발 (0) 2021.09.28 [Python] 백준 12904 A와 B (0) 2021.09.18 [Python] 백준 14676 영우는 사기꾼 (0) 2021.09.18