[PS] K번째 수

tissue·2025년 3월 26일
0

알고리즘

목록 보기
14/18

문제

난이도: Level 1
카테코리: 정렬


풀이

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

using namespace std;

// i번째 수 부터 j번째 수를 정렬하여 k번째 숫자를 return 하는 함수
int def (vector<int> array, vector<int> v){
    vector<int> newV;
    int j = v[1] - 1;
    for (int i = v[0] - 1; i <= j; i++){
        newV.push_back(array[i]);
    }
    sort(newV.begin(), newV.end()); // 오름차순 정렬
    
    return newV[v[2] - 1];
    // k번째 수 출력

    // 모두 '번째' 수 이므로 -1을 해준다
}

vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> answer;
    
    for (int i = 0; i < commands.size(); i++){
        answer.push_back(def(array, commands[i]));
    }

    return answer;
}
  • N 번째 수
    • N 번째 수를 인덱스와 맞춰야 하므로 -1 해야 함에 주의

간단한 문제이므로 코드를 조금 더 효율적으로 짜보는 건 어떨까?

  • 내가 몰랐던 것
    - 벡터 정렬 시작, 끝 인덱스 지정 가능하다!
    • sort (시작,끝...) 뭐 이런 식으로?
profile
Better than Yesterday!

0개의 댓글