반응형
프로그래머스 - 코딩테스트 고득점 키트
https://programmers.co.kr/learn/courses/30/lessons/42748
문제
풀이
구간 for문을 사용하여 배열에 i번째 수부터 j번째 숫자까지 자른 후 tmp라는 벡터에 넣어준 뒤, STL의 sort함수를 사용하여 tmp 벡터 정렬을 진행한다.
그 후, k번째의 수를 결과값을 저장하는 벡터인 answer에 push해준다. tmp벡터의 값을 clear()를 통해 삭제시킨 후, 다음 command에 대한 i,j,k연산을 진행한다.
모든 답을 구하면 answer 벡터를 반환한다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
vector<int> tmp;
for(auto command : commands)
{
for(int i = command[0]-1; i < command[1]; i++ )
tmp.push_back(array[i]);
sort(tmp.begin(),tmp.end());
answer.push_back(tmp[command[2]-1]);
tmp.clear();
}
return answer;
}
평가
구간 for문에 대한 활용법과 vector를 다루는 방법을 알면 풀 수 있는 문제이다.
벡터에 대한 STL Sort활용법을 확실히 알고 넘어가도록 하자.
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers / Sorting] - H Index C++ 풀이 (0) | 2020.03.27 |
---|---|
[Programmers / Sorting] - 가장 큰 수 C++ 풀이 (0) | 2020.03.27 |
[Programmers / Hash] - 위장 C++ 풀이 (2) | 2020.03.22 |
[Programmers / Hash] - 완주하지 못한 선수 C++ 풀이 (0) | 2020.03.22 |