문제
접근
해당 구간을 복사하여 정렬한다.
구간을 복사하는 것은 슬라이싱을 통해 간단하게 해결 가능하다.
다음 command는 원본 배열을 사용해야 한다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
def solution(array, commands):
answer = []
for s, e, k in commands:
arr = array[s-1:e]
arr.sort()
answer.append(arr[k-1])
return answer
- C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
for(int i = 0; i<commands.size();i++){
vector<int> arr = vector<int>(array.begin() + commands[i][0] - 1, array.begin() + commands[i][1]);
sort(arr.begin(), arr.end());
answer.push_back(arr[commands[i][1] - 1]);
}
return answer;
}