코딩테스트
[프로그래머스][C++] 프린터
이쿠우우
2022. 3. 21. 21:48
반응형
https://programmers.co.kr/learn/courses/30/lessons/42587
글쓴이의 답
개인적인 풀이 임으로
이것보다 더 좋은 알고리즘은 많음...
이렇게도 풀이하는구나.. 공유하기 위해 올림...
#include <string>
#include <vector>
#include <deque>
#include <utility>
#include <iostream>
using namespace std;
int solution(vector<int> priorities, int location) {
int answer = 0;
deque<pair<int, int>> data;
int num = 1;
for(int i=0; i < priorities.size(); i++){
pair<int, int> insert = make_pair(num, priorities[i]);
data.push_back(insert);
num++;
}
deque<pair<int, int>> result;
while(0 != data.size()){
int i=0;
for(i=1; i < data.size(); i++){
if(data[0].second < data[i].second){
pair<int, int> temp = data[0];
data.pop_front();
data.push_back(temp);
break;
}
}
if(i == data.size()){
pair<int, int> temp = data[0];
result.push_back(temp);
data.pop_front();
}
}
for(int i=0; i<result.size(); i++){
if(result[i].first == location+1){
answer = i+1;
}
}
return answer;
}
꾸준히 하다보면 실력이 늘겠지..
반응형