[프로그래머스] Q.42587_Python

0
post-thumbnail

1. 문제-풀이

(1) 문제

👀문제 확인하러가기!👀

(2) 풀이



2. 풀이방법

(1) 변수 설명

is_printed : 요청한 location에 있는 문서가 인쇄되는 순간 return하고 종료할것이므로 요청 문서가 인쇄되었는지의 여부를 나타내는 변수

data : enumerate를 이용해서 가장 처음 대기 목록의 몇 번째 문서가 어떤 우선순위를 가지고 있는지 리스트를 만들어서 deque로 변환한 변수

< 문제에 명시된 인쇄 작업 방식 >
1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
3. 그렇지 않으면 J를 인쇄합니다.


(2) while문 설명

target : 문제의 인쇄 작업 방식에 따라 대기 목록의 가장 앞에 있는 문서를 저장한 변수

if 문
target 문서의 우선순위가 나머지 인쇄 대기목록의 어떠한 우선순위보다 같거나 크다면 인쇄수를 나타내는 answer를 1 증가시킨다.

만약, 이때 인쇄된 문서의 위치가 사용자가 요청한 location과 동일하다면 함수를 종료한다.

elif문
반면 나머지 인쇄 대기목록에서 target문서보다 우선순위가 높은 문서가 하나라도 있다면 target문서를 다시 대기목록의 가장 마지막에 넣는다.

else문
만약, 사용자가 요청한 문서가 가장 마지막에 인쇄된다면 기존 인쇄 수(answer)에 1을 증가시켜 반환한다.

profile
재미있는 아이디어 떠올리는 것을 좋아하고, 이를 구현하여 세상에 즐거움을 선물하고 싶은 사람입니다.

0개의 댓글