문제

문제 해석
- compare라는 별도의 함수를 이용해서 문자열 strings를 정렬해야 겠다는 생각을 함
- compare함수에서 사용해야 하는 Index를 전역 변수로 선언하여 저장하도록 구현
- 비교하려는 Index의 문자가 같은 경우를 확인하기 위해서 compare에서는 문자열 인자로 받도록 함.
- 복사를 방지하기 위해서 const 참조를 수행
- 사전순이므로 단순하게 왼쪽 문자열이 오른쪽 문자열보다 앞선지 확인은 > 연산자 사용.
코드
#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;
}
다른 사람의 풀이
삼항 연산자를 잘 활용하고 answer에 strings를 복제하는 비용을 없애서 풀이