[Programmers] 프린터
🎈문제
https://programmers.co.kr/learn/courses/30/lessons/42587
💬설명
- 문제에 나와있는대로 그대로 구현하면 되는 문제
- 인쇄에 순서가 있어서 스택/큐 문제라고 생각했다.
- 과정은 다음과 같다.
- 문서를 앞에서부터 하나씩 뽑음 (while문)
- 지금 뽑은 문서가 최대값이라서 인쇄대상인 경우
- 만약 해당 문서가 내가 인쇄를 요청한 문서인 경우 누적된 횟수값 리턴후 종료
- 만약 해당 문서가 내가 인쇄를 요청한 문서가 아닌 경우 요청한 문서 위치값 update
- 지금 뽑은 문서가 최대값이 아니어서 뒤로 넘겨야 하는 경우
- 해당 문서가 내가 인쇄를 요청한 문서인 경우
- 요청한 문서 위치값 맨 마지막으로 update
- 해당 문서가 내가 인쇄를 요청한 문서가 아닌 경우
- 요청한 문서 위치값 앞으로 한칸 땡겨주기
- 해당 문서가 내가 인쇄를 요청한 문서인 경우
👩💻코드
def solution(priorities, location):
answer = 0
while True:
max_num = max(priorities)
first = priorities.pop(0)
# 지금 뽑은 문서가 최대값이라서 인쇄대상인 경우
if first == max_num:
answer += 1
# 만약 해당 문서가 내가 인쇄를 요청한 문서인 경우
if location == 0:
return answer
else:
location -= 1
# 지금 뽑은 문서가 최대값이 아니라서 뒤로 넘겨야하는 경우
else:
priorities.append(first)
# 해당 문서가 내가 인쇄를 요청한 문서인 경우
if location == 0:
location = len(priorities) - 1
else:
location -= 1
return answer
728x90
반응형
'CS > Algorithm 문제' 카테고리의 다른 글
[Programmers] 주식가격 (0) | 2021.10.07 |
---|---|
[Programmers] 다리를 지나는 트럭 (0) | 2021.10.07 |
[Programmers] 기능개발 (0) | 2021.10.07 |
[Programmers] 베스트앨범 (0) | 2021.10.07 |
[Programmers] 위장 (0) | 2021.10.07 |