본문 바로가기

개발자/Algorithm

프로그래머스 문제풀이(정렬)- K번째수

반응형

vector 관련 메서드,

iterator 들만 잘 사용하면 되는 문제.

 

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    vector<int> temp_array;
    vector<int>::iterator iter;
    vector<int>::iterator iter2;
    int solu;
    int command_num;
    int i,j,k;
    int arraysize = array.size();
    command_num = commands.size();

    for(int t=0;t<command_num;t++)
    {

        vector<int> temp_array = array;
        i = commands[t][0];
        j = commands[t][1];
        k = commands[t][2];


        if(i==j)
        {
            solu = *(temp_array.begin()+i-1);

            answer.emplace_back(solu);
            
        }
        
        else
        {

            
            for(int kk = 0;kk<i-1;kk++)
            {
                iter = temp_array.begin();
                temp_array.erase(iter);

            }

            for(int kk=0;kk<arraysize-j;kk++)
            {
                iter2 = temp_array.end();
                iter2--;
                temp_array.erase(iter2);
                
            }
            
            sort(temp_array.begin(),temp_array.end());
            solu = *(temp_array.begin()+k-1);
            answer.emplace_back(solu);

        }
        
    
    }
    
    return answer;
}
반응형