문제
풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
vector<int> arr;
for(int i=0; i<commands.size(); i++){
arr.assign(array.begin()+commands[i][0]-1, array.begin()+commands[i][1]);
sort(arr.begin(), arr.end());
answer.push_back(arr[commands[i][2]-1]);
}
return answer;
}
K번째 수를 찾기 위해 배열을 n번째부터 m번째까지 자르는 과정이 필요했는데 이때 assign을 사용했다.
array.assign(array.begin()+n-1, array.begin()+m);
-위를 사용하면 n번째부터 m번째까지의 백터를 얻을 수 있다.
다른사람 풀이
#include <string>
#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 i = 0; i < commands.size(); i++) {
temp = array;
sort(temp.begin() + commands[i][0] - 1, temp.begin() + commands[i][1]);
answer.push_back(temp[commands[i][0] + commands[i][2]-2]);
}
return answer;
}
assign을 사용하지 않고 sort를 사용하여 벡터에서 원하는 부분만 잘라낼 수 있었다.
실행시간은 비슷해 보였다!
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스]탐욕법 - 체육복 (0) | 2022.01.30 |
---|---|
[프로그래머스]완전탐색 - 모의고사 (0) | 2022.01.27 |
[프로그래머스] 소수만들기 (0) | 2022.01.25 |
[프로그래머스]내적 & 없는숫자 더하기 / 범용 수치 알고리즘 (0) | 2022.01.24 |
[프로그래머스]로또의 최고 순위와 최저 순위 (0) | 2022.01.23 |