728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

출처

[1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다.
[1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다.
[1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    vector<int> part_vector;
    vector<int> answer;
    int i=0, j=0, k=0;
    
    // commands로부터 조건들을 꺼낸다.
    for(auto it=commands.begin(); it!=commands.end(); it++)
    {
        i = (*it)[0]-1, j = (*it)[1]-1, k = (*it)[2]-1// 1번째는 0번째이므로 -1 처리.
        
        part_vector.resize(j-i+1); // j-i+1 은 부분 벡터의 크기
        copy(array.begin()+i, array.begin()+j+1, part_vector.begin()); // 부분 벡터를 복사
        
        sort(part_vector.begin(), part_vector.end()); // 정렬(퀵)
        answer.push_back(part_vector[k]); // 정렬된 부분 벡터에서 k번째를 구함.
    }
    return answer; // 간단
}
cs
728x90
반응형

'프로그래밍응용 > 오답노트' 카테고리의 다른 글

SQL1  (0) 2021.02.15
무식하게 완전 탐색! - 모의고사  (0) 2021.02.15
우선순위 큐 이용한 문제 ㅋㅋ  (0) 2021.02.13
stack 주식 가격  (0) 2021.02.13
A집단과 B집단의 차이를 구할 때  (0) 2021.02.12

+ Recent posts