티스토리 뷰

문제 링크

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

 

 

풀이

간단한 문제였다.

 

요약하자면,

vector<int> v를 선언하고 공간을 reserve()로 예약한 후,

해당하는 범위를 v에 할당했다.

이후, sort()로 오름차순으로 정렬 후,

해당 index를 answer 컨테이너에 넣어주었다.

 

 

 

더보기
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    
    for(int i=0; i<commands.size(); i++){
        int start = commands[i][0]-1;
        int end = commands[i][1];
        int index = commands[i][2]-1;
        
        vector<int> v;
        v.reserve(end-start+1);     // 공간 예약
        v.insert(v.end(), array.begin()+start, array.begin()+end);      // 잘라서 붙이기
        sort(v.begin(), v.end());       // 정렬
        answer.push_back(v[index]);
    }
    
    return answer;
}
728x90
반응형
댓글
01-10 09:46
링크