[프로그래머스] 정렬 - K번째수

주절주절

백준에서 단계별로 풀어보기에서 주제별로 2~3개 정도 풀면서 자료구조와 알고리즘 종류에 대해 맛을 보고 실전 느낌이 나는 문제들을 풀어보고 싶었다.

들어보니 요즘 기업들에서 코딩테스트를 진행할 때 프로그래머스를 많이 사용한다고 해서 프로그래머스 환경에 익숙해지고자 프로그래머스로 넘어왔다.

아 그리고 프로그래머스에 고득점 kit 이라고 자주 나오는 주제별로 대표문제들을 따로 모아 제공해준다. 한번 쭉 풀어보자

문제

문제링크

풀이

사실 어려운 문제는 아니었지만 처음 프로그래머스 환경을 겪어본 탓이라 적응하는데 시간이 걸렸다.
코드를 작성할 때 기존에 쓰던 VScode 와 다르게 자동완성 기능이 없어 귀찮긴 하지만 코드를 확실히 알고 넘어가야 풀 수 있게 환경을 조성해 놓은 것 같다. 적응하자!

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    
    for(int l=0;l<commands.size();l++)
    {
        int i = commands[l][0];
        int j = commands[l][1];
        int k = commands[l][2];
        
        vector<int> tmp; // 자른 배열 임시 저장
        for(int m=i-1;m<=j-1;m++)
        {
            tmp.push_back(array[m]);
        }
        sort(tmp.begin(), tmp.end());
        
        answer.push_back(tmp[k-1]);
    }
    return answer;
}

int main(){
    vector<int> answer = solution({1,5,2,6,3,7,4}, {{2,5,3},{4,4,1},{1,7,3}});
    
    for(int i=0;i<answer.size();i++)
    {
        cout << answer[i] << " ";   
    }
    
    return 0;
}

일반적인 정렬 문제였다.

좋은 웹페이지 즐겨찾기