알고리즘 공부

[프로그래머스] 프린터 - java

철매존 2021. 5. 2. 17:59
728x90
반응형

문제 설명

1. 프린트 뽑는 순서와 중요도가 정해져 있다.

2. 프린트를 순서대로 가져오는데, 현재 뽑을 예정인 순서의 프린트보다 중요도가 높은 것이 있으면 현재 순서의 프린트를 맨 뒤로 보내준다.

3. 중요도는 1~9로 존재하며 숫자가 클수록 중요하다.

4. location에 해당하는 프린트가 몇 번째로 뽑히는지 찾아 return하면 된다.

 

 

 

풀이 과정

 1. queue에 넣어두고 하나씩 빼서 비교해 준다.

 2. queue내에 현재 peek값보다 큰 중요도를 갖는 것이 있으면 현재 peek를 빼서 다시 넣으면 최후미로 이동할 것이다.

 3. 해당 process를 계속 진행하면서 프린트가 뽑힐 때 마다 location을 하나씩 빼면서 진행해 주고, location이 0이고, 현재 값이 출력된 경우가 답이 된다.

 4. 만약 location은 0이라면 현재 위치가 구해야 하는 위치인데, 이것이 다시 맨 뒤로 이동하는 경우, 진행해야 하는 process를 구해서 더해 준다.

 5. 전체 process의 진행동안 answer을 1씩 추가하여, 마지막 location이 출력되는 경우가 정답이 된다.

 

코드

반응형