#include <string>
#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++) //배열의 1번째 원소만큼 반복
{
vector<int> list; //정렬을 시킬 배열의 빈값
for(int j = commands[i][0] - 1; j < commands[i][1]; j++)
list.push_back(array[j]); //문제에서의 i에서 j까지의 범위만큼 대입
if(list.size() > 1) //한개만 있을 경우는 그냥 정렬을 안한다.
sort(list.begin(), list.end()); //정렬
answer.push_back(list[commands[i][2] - 1]); //k번째의 값을 대입
}
return answer;
}
풀이
vector<int> list
에 i~j의 값을 넣는다.- list 배열을 정렬한다.
- 그중에 k번째 값을 answer에 넣어준다.
- 1,2,3을 commands.size()만큼 반복한다.
다른코드
더보기
#include <string>
#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> list(commands[i][1] - commands[i][0] + 1, 0);
if(list.size() == 1)
{
list[0] = array[commands[i][0] - 1];
}
else
{
int temp = 0;
for(int j = commands[i][0] - 1; j < commands[i][1]; j++)
{
list[temp] = array[j];
temp++;
}
sort(list.begin(), list.end());
}
answer.push_back(list[commands[i][2] - 1]);
}
return answer;
}
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 모의고사 완전탐색 (0) | 2021.04.21 |
---|---|
[C++] 프로그래머스 네트워크 DFS, BFS (0) | 2021.04.19 |
[C++] 프로그래머스 타겟넘버 DFS/BFS (0) | 2021.04.02 |
[C++] 프로그래머스 H-index (0) | 2021.01.04 |
[C++] 프로그래머스 가장 큰 수 (0) | 2020.12.30 |