๋ฌธ์
๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด array๊ฐ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด
- array์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅด๋ฉด [5, 2, 6, 3]์ ๋๋ค.
- 1์์ ๋์จ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ฉด [2, 3, 5, 6]์ ๋๋ค.
- 2์์ ๋์จ ๋ฐฐ์ด์ 3๋ฒ์งธ ์ซ์๋ 5์ ๋๋ค.
๋ฐฐ์ด array, [i, j, k]๋ฅผ ์์๋ก ๊ฐ์ง 2์ฐจ์ ๋ฐฐ์ด commands๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, commands์ ๋ชจ๋ ์์์ ๋ํด ์์ ์ค๋ช ํ ์ฐ์ฐ์ ์ ์ฉํ์ ๋ ๋์จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
ํด๊ฒฐ
key point, ์ ๋ ฌ!
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
int idx = 0;
while(idx < commands.size()){
vector<int> cut;
for(int i = commands[idx][0] - 1; i < commands[idx][1]; i++){
cut.push_back(array[i]);
}
sort(cut.begin(), cut.end());
answer.push_back(cut[commands[idx++][2] - 1]);
}
return answer;
}
์ฒ์์๋ ์์ ๋ณด์ด๋ ์ฝ๋์ฒ๋ผ ์์ฑํ์๋๋ฐ, ๋ง์ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ sort๋ด์์๋ ๋ค์ํ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๊ณ ์์์ง์ ๊ณผ ๋์ง์ ์ ์ง์ ํ์ฌ ์ ๋ ฌํ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ฌ ์๋ '์ฝ๋'์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ ์์ฑํ๊ฒ ๋์๋ค.
๋ก์ง์ ๋๊ฐ๋ค. i๋ฒ์งธ๋ถํฐ j๋ฒ์งธ๊น์ง ์์๋ค์ ์์๋ฐฐ์ด์ ์ ์ฅํ๊ณ , ์ ๋ ฌํ ๋ค k๋ฒ์งธ ์๋ฅผ ์ฐพ์์ answer๋ฐฐ์ด์ ์ ์ฅํ๋ค. ์ด ๋ฐฉ์์ commands.size()๋งํผ ๋ฐ๋ณตํ ํ answer๋ฅผ ๋ฆฌํดํ๋ฉด ๋.
์ฝ๋
'๐ฅ PS(Problem Solving) ๐ฅ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์ ๋ ฌ, H-Index (0) | 2020.07.16 |
---|---|
[programmers] ์คํํ, ์ ๋ง๋๊ธฐ (0) | 2020.07.16 |
[programmers] ์ ๋ ฌ, ๊ฐ์ฅ ํฐ ์ (0) | 2020.07.16 |
[programmers] ์คํํ, ํ๋ฆฐํฐ (0) | 2020.07.16 |
[programmers] ์คํํ, ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2020.07.04 |
๋๊ธ