반응형


 

프로그래머스 - 코딩테스트 고득점 키트

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활용법을 확실히 알고 넘어가도록 하자.

 

 

 

반응형
블로그 이미지

Hyunsoo Luke HA

석사를 마치고 현재는 Upstage에서 전문연구요원으로 활동중인 AI 개발자의 삽질 일지입니다! 이해한 내용을 정리하는 용도로 만들었으니, 틀린 내용이 있으면 자유롭게 의견 남겨주세요!

,