728x90
์ฝ๋ฉํ ์คํธ ๊ณ ๋์ kit ์ ๋ ฌํํธ 1๋ฒ K๋ฒ์งธ ์
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/42748
[ํด๊ฒฐ๋ฒ]
๋ฒกํฐ์์ i~j ์ซ์๋ฅผ ์ถ์ถํ๊ณ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ ํ, k๋ฒ์งธ ์๋ฅผ ๋ฝ๋ ๋ฌธ์ ์ด๋ค.
์์๋๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ํ๋๊น ๊ธ๋ฐฉ ํ๋ ธ๋ค.
but ๋ฐฑ๋ง๋ ๋ง์ C++ ๋ค์ ์ก์ผ๋ ํจ์๊ฐ ํท๊ฐ๋ฆฐ๋ค... ๊ฐ์ก์ keep going...
[์์๋ ๊ฒ]
1. ๋ฒกํฐ ๋ถ๋ถ์ถ์ถ
vector<int> partArray(array.begin() + beginIndex, array.begin() + endIndex);
2. ๋ฒกํฐ ์ ๋ ฌ
sort(v.begin(), v.end()); // ๋ฒกํฐ ์ ์ฒด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋
sort(v.begin(), v.end(), greater<int>()); // ๋ฒกํฐ ์ ์ฒด๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋
[์ฝ๋]
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
//๋ช
๋ น ๊ฐฏ์๋งํผ ๋ฐ๋ณต
for(int i = 0; i < commands.size(); i++){
//๋ช
๋ น์ด ๊ฐ ๋ณด๊ธฐ์ข๊ฒ ์ ์ธ
int beginIndex = commands[i][0];
int endIndex = commands[i][1];
int answerIndex = commands[i][2];
//beginInde ~ endIndex๊น์ง ๊ฐ ์ถ์ถ
vector<int> partArray(array.begin() + beginIndex - 1, array.begin() + endIndex);
//์ค๋ฆ์ฐจ์ ์ ๋ ฌ
sort(partArray.begin(), partArray.end());
//K๋ฒ์งธ ์ ์ถ์ถ
answer.push_back(partArray[answerIndex - 1]);
}
return answer;
}
์๊ฐ๋ณต์ก๋: for๋ฐ๋ณต๋ฌธ O(N) x ๋ฒกํฐ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ Quick ์ ๋ ฌ O(NlogN) = O(N^2logN)
728x90
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Programmers][์ ๋ ฌ] H-Index (0) | 2023.04.20 |
---|---|
[C++][Programmers][์ ๋ ฌ] ๊ฐ์ฅ ํฐ ์ (1) | 2023.04.19 |
[C++][Beakjoon][DFS/BFS] 13023๋ฒ ABCDE (0) | 2022.05.10 |
[C++][Beakjoon] 11724๋ฒ ์ฐ๊ฒฐ์์ (0) | 2022.05.10 |
[C++][Baekjoon][๋นํธ๋ง์คํฌ] 11723๋ฒ ์งํฉ (0) | 2022.05.08 |