프로그래머스 코딩테스트 연습 - K번째 수 (Level 1)
PS/Programmers

프로그래머스 코딩테스트 연습 - K번째 수 (Level 1)

programmers

 

문제

프로그래머스 코딩테스트 연습 - K번째 수 (Level 1)

https://programmers.co.kr/learn/courses/30/lessons/42748

 

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

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

programmers.co.kr


사용 알고리즘

- 정렬

 

풀이

각 벡터(예제)마다 원본 array벡터를 카피한 temp벡터를 만들어 정렬시키고

k번째로 큰 수를 구함.

 

나의 코드

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

using namespace std;

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    int i, j, k;
    for(auto command:commands){
        vector<int> temp=array;
        i=command[0]-1;
        j=command[1]-1;
        k=command[2]-1;
        sort(temp.begin()+i,temp.begin()+j+1);
        answer.push_back(temp[i+k]);
    }
    return 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> temp;

    for(int i = 0; i < commands.size(); i++) {
        temp = array;
        sort(temp.begin() + commands[i][0] - 1, temp.begin() + commands[i][1]);
        answer.push_back(temp[commands[i][0] + commands[i][2]-2]);
    }

    return answer;
}

내 코드랑 비슷한 방법이다.

728x90