Dolphins의 HelloWorld

Programmers > 코딩테스트 연습 > 스택/큐 > 프린터 본문

Algorithm/Programmers 문제풀이

Programmers > 코딩테스트 연습 > 스택/큐 > 프린터

돌핀's 2018. 9. 14. 20:58

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42587




풀이



처음에  queue<pair<int, int>> q;    priority_queue<int> pq; 를 선언하였다.


그냥 큐에서 인자 하나는 우선순위, 하나는 위치를 저장해 놓았고


우선순위 큐에는 우선순위를 넣었는데 기존의 우선순위들을 내림차순으로 정렬하기 위함이다.



이렇게 되면 우선순위 큐의 가장 앞에는 우선순위가 가장 큰 것이 있으므로


만약 큐의 맨 앞에 있는것과 우선순위 큐의 맨 앞에있는 것이 같다면 큐의 인자를 pop하면 되고


같지 않다면 큐의 맨 뒤로 옮겨주면 된다.



그리고 우선순위가 같을 때 우리가 찾고자하는 것과 location이 같다면 인쇄되는 순서를


return해주면 되고 아니라면 인쇄순서를 증가시킨 후 과정을 반복하면 된다.



Comments