본문 바로가기
C++

코딩테스트연습->정렬->K번째수

by Hwoarang757 2021. 7. 22.

출처 : 코딩테스트 연습 - K번째수 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

웹 페이지에서 테스트 및 디버깅 진행 하여 .....겨우 통과를 하였지만 ,,,,,

코드는 리팩터링 할게 많네요 =_=;;; 부끄럽지만 작성 합니다 -0-;;;

 

##################################################################

## 2021.07.22 최초 작성 

##################################################################

#include <string>
#include <vector>


#include <iostream>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    vector<int> vecTmp;
    
    for_each(commands.begin() , commands.end() , [&](const vector<int> &vec) {
        
        //1. N 번째 부터 N 번째까지 삽입
        for_each(array.begin() + (vec.at(0) -1) , array.begin() + vec.at(1) , [&](const int &tmpInt) {
            vecTmp.push_back(tmpInt);        
        });
        
        // 2. 정렬
        sort(vecTmp.begin() , vecTmp.end());
        
        for_each(vecTmp.begin() , vecTmp.end() , [](int tmpval) {
            cout << tmpval << "," ;
        });
                 
        cout << endl;
        
        //3. 세번째 숫자 가져오기 
        answer.push_back(vecTmp.at(vec.at(2) -1 ));
    
        vecTmp.clear();
      
    });

    
    return answer;
}