반응형
programmers.co.kr/learn/courses/30/lessons/42748
구현 방법
입력 배열은 array와 commands인데, commands가 [1,5,3]으로 주어지면 이는 array를 1번째 원소부터 5번째 원소들을 담고 정렬하여 그중 3번째 수를 뽑는 문제이다.
간단하게 commands의 개수 만큼 반복하고, 2번째 for문은 commands의 첫 번째 원소부터 두 번째 원소만큼 반복된다.
이때 array의 해당 index에 있는 값을 하나의 배열에 담아주고, 해당 배열을 정렬하고 commands의 마지막 원소인 K번째 수를 꺼내서 답으로 제출하면 된다.
해당 로직은 아래와 같이 구현했다.
소스코드
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
//주어진 commands 개수 만큼 반복
for(int i = 0 ; i < commands.size(); i++) {
//commands에서 주어진 i부터 j까지 잘라서 담을 배열 temp
vector<int> temp;
//입력 배열 array를 commands의 첫번째 원소 부터, 두번째 원소까지 담는다
for(int j = commands[i][0]-1; j < commands[i][1] ;j++) {
temp.push_back(array[j]);
}
//정렬 하고, commands의 마지막 원소인 K번째 수를
// array를 잘라서 담아놓은 temp에서 꺼낸다
sort(temp.begin(), temp.end());
answer.push_back(temp[commands[i][2]-1]);
}
return answer;
}
반응형
'코딩테스트 > 프로그래머스(lv1)' 카테고리의 다른 글
[프로그래머스 Level 1] 실패율 (C++) (0) | 2021.01.30 |
---|---|
[프로그래머스 Level 1] 체육복 (C++) (2) | 2021.01.24 |
[프로그래머스 Level 1] 모의고사 (C++) (0) | 2021.01.24 |
[프로그래머스 Level 1] 완주하지 못한 선수 (C++) (0) | 2021.01.24 |
[프로그래머스 Level 1] 두개 뽑아서 더하기 (C++) (0) | 2021.01.24 |
댓글