Study hard
(c++)프로그래머스 코딩테스트 연습 - 프린터 본문
programmers.co.kr/learn/courses/30/lessons/42587
코딩테스트 연습 - 프린터
일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린
programmers.co.kr
[풀이]
deque를 써서 풀었다.
요청한 문서의 위치가 0일 때 다른 문서들의 중요도보다 크면 break하는 방법으로 구현하였다.
#include <string>
#include <vector>
#include <deque>
using namespace std;
int solution(vector<int> priorities, int location) {
int answer = 0;
deque<int>p;
for (int i = 0; i < priorities.size(); i++) {
p.push_back(priorities[i]);
}
while (1) {
int cdoc = p.front();
p.pop_front();
bool flag = true;
for (int i = 0; i < p.size(); i++) {
if (cdoc < p[i]) {
flag = false;
break;
}
}
//가장 앞에 있는 문서가 가장 중요도가 높은 문서면
if (flag == true) {
answer++;
//가장 앞에 있는 문서가 요청한 문서면
if (location == 0) {
break;
}
else
location--;
}
//가장 앞에 있는 문서가 가장 중요도가 높은 문서가 아니면
else {
p.push_back(cdoc);
if (location == 0)
location = p.size() - 1;
else
location--;
}
}
return answer;
}
'프로그래머스 > 스택,큐' 카테고리의 다른 글
(c++)프로그래머스 코딩테스트 연습 - 기능개발 (0) | 2020.10.23 |
---|