본문 바로가기
개발/Coding Test

[프로그래머스 C++ Lv2] 프린터

by Eunduck 2022. 6. 6.
728x90

안녕하십니까. Eun🦆입니다.

풀이법 입니다.

 

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr

#include <string>
#include <vector>
using namespace std;
int solution(vector<int> priorities, int location) {
    int answer = 0;
    int try_cnt = 0;
    int pass_cnt = 0;
    int size = priorities.size();
    int cnt = 0;
    vector<int> value;
    for(int i=0;i<size;i++){
        value.push_back(cnt);
        cnt++;
    }
    //printf("value.size()=%d\n",value.size());
    while(priorities.size()>0)
    {
        for(int i=0;i<priorities.size();i++)
        {
            int temp = 0;
            int temp_check = 0;
            if(priorities[0]<priorities[i])
            {
                temp = priorities[0];
                priorities.erase(priorities.begin());
                priorities.push_back(temp);
                //for(int j=0;j<priorities.size();j++)
                    //printf("priorities[%d]=%d\n",j,priorities[j]);                
                //printf("changed!\n");
                temp_check = value[0];
                value.erase(value.begin());
                value.push_back(temp_check);
                //for(int j=0;j<value.size();j++)
                    //printf("value[%d]=%d\n",j,value[j]);
                try_cnt++;
                break;
            }
            else
            {
                if(i==priorities.size()-1)
                {
                    pass_cnt++;
                    //printf("passed!\n");
                    //printf("priotities %d out!\n",priorities.front());
                    priorities.erase(priorities.begin());
                    //printf("value %d out!\n",value.front());
                    if(value.front()==location)
                    {
                        answer=pass_cnt;
                        //printf("answer=%d\n",answer);
                    }
                    value.erase(value.begin());
                    break;
                }
            }
        }
    }
    return answer;
}

 

네이버 블로그 리뉴얼입니다.

(https://blog.naver.com/unsuk1/221933977340)

728x90

댓글