문제

문제 해석
- 임시로 사용할 숫자들을 담아놓을 것
- 숫자를 command에 따라 담는다
- 처음에는 copy로 풀려고 했으나 end쪽 iterator에서 문제가 발생해서 copy는 포기
- for문으로 Temp에 담음
- 담아놓은 숫자의 정렬을 수행
- 담아놓은 숫자 중 k번째 것을 answer에 저장
코드
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
// 임시로 사용할 숫자들을 담아놓을 것
vector<int> Temp;
for (int ComIDX = 0; ComIDX < commands.size(); ++ComIDX)
{
Temp.clear();
// 숫자를 command에 따라 담는다.
for(int IDX = commands[ComIDX][0]; IDX <= commands[ComIDX][1]; ++IDX)
{
Temp.push_back(array[IDX - 1]);
}
// 담아놓은 숫자의 정렬
sort(Temp.begin(), Temp.end());
// 담아놓은 숫자 중 k번째의 것 추출 // answer에 추출한 숫자를 넣는다.
answer.push_back(Temp[commands[ComIDX][2] - 1]);
}
return answer;
}
다른 사람의 풀이
- temp에 array를 담고 이 중에서 command에 해당하는 숫자들만 정렬
- 해당 command에 해당하는 숫자를 answer에 저장