본문 바로가기
  • 실행력이 모든걸 결정한다
Algorithm/Sort

[정렬, 난이도 하] 프로그래머즈, K번째수 (벡터 복사)

by 김코더 김주역 2020. 9. 10.
반응형

기초적인 정렬문제이다.

구간을 잡고 정렬해서, 그 구간내에서 원하는 인덱스값을 추출하면 된다.

 

그런데 테스트케이스가 여러개이기 때문에 벡터를 테스트케이스마다 초기화해줘야 한다.

본인 같은 경우에는 구간을 잡을 때, 구간을 잘라서 다른 벡터에 따로 할당시켰다.

 

벡터를 할당하는 함수의 사용법이다.

할당받을 대상인 벡터를 V1이라고 하고 할당할 값들이 있는 벡터를 V2라고 한다면

V1.assign(V2.begin()+firstindex, V2.begin()+lastindex+1)

만약 V2벡터의 1번째 인덱스부터 4번째 인덱스까지 복사하여 V1벡터에 붙여넣고 싶다면

V1.assign(V2.begin()+1, V2.begin()+5) 로 작성한다. (2번째 인자 값의 이전까지만 포함)

 

통째로 복사하고싶다면

V1.assign(V2.begin(), V2.end())로 많이 작성한다.

 

테스트케이스 7개 모두 정답

 

#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    vector<int> v;
    for(int i=0;i<commands.size();i++){
        v.clear();
        v.assign(array.begin()+commands[i][0]-1,array.begin()+commands[i][1]);
        sort(v.begin(),v.end());
        answer.push_back(v[commands[i][2]-1]);
    }
    return answer;
}
반응형

댓글