๐
2025-07-31
๋ฌธ์ ๋งํฌ
์ ์๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด numbers๊ฐ ์์ต๋๋ค. ๋ฐฐ์ด ์ ๊ฐ ์์๋ค์ ๋ํด ์์ ๋ณด๋ค ๋ค์ ์๋ ์ซ์ ์ค์์ ์์ ๋ณด๋ค ํฌ๋ฉด์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ ์๋ฅผ ๋ท ํฐ์๋ผ๊ณ ํฉ๋๋ค.
์ ์ ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์์์ ๋ํ ๋ท ํฐ์๋ค์ ์ฐจ๋ก๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๋จ, ๋ท ํฐ์๊ฐ ์กด์ฌํ์ง ์๋ ์์๋ -1์ ๋ด์ต๋๋ค.
์ ํ์ฌํญ
์ฒ์ ํ์๋ ๋ฐฉ์
์์ ํ์ ๋ฐฉ์
๋ฌธ์ ์ : ์ต์
์ ๊ฒฝ์ฐ O(N^2)์ ์๊ฐ๋ณต์ก๋๊ฐ ๋์ ์๊ฐ ์ด๊ณผ ๋ฐ์
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
answer.reserve(numbers.size());
// ์๊ธฐ ์ธ๋ฑ์ค ๋ค๋ถํฐ ์์ ๋ณด๋ค ํฌ๊ณ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ ์
for(int i=0; i<numbers.size()-1; i++)
{
int temp = -1;
for(int j=i+1; j<numbers.size(); j++)
{
if(numbers[j]>numbers[i])
{
temp = numbers[j];
break;
}
}
answer.push_back(temp);
}
answer.push_back(-1);
return answer;
}
์ต์ ํํ ํ์ด
ํด๊ฒฐ ๋ฐฉ๋ฒ: ์์ ๋ณด๋ค ํฐ ์๊ฐ ์์ผ๋ฉด -1์ด๋ฏ๋ก -1๋ก answer๋ฅผ ์ด๊ธฐํํ๊ณ ์คํ์ ์ด์ฉํด ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ์ฌ ๋น๊ตํ๋ค.
#include <vector>
#include <stack>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer(numbers.size(), -1);
stack<int> idx;
// ์๊ธฐ ์ธ๋ฑ์ค ๋ค๋ถํฐ ์์ ๋ณด๋ค ํฌ๊ณ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ ์
for(int i=0; i<numbers.size(); i++)
{
while(!idx.empty() && numbers[i]>numbers[idx.top()])
{
answer[idx.top()] = numbers[i];
idx.pop();
}
idx.push(i);
}
return answer;
}
GAS๋ก ํ์ด ๋ค ์ง์ฌ์์ด์ Gameplay Tag๋ก ์ ํธ ์ฃผ๋ ๊ฒ์ผ๋ก ๊ตฌํํ ์ ์์๋ค.
GAS๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์๋๊น์ง ์ด์ฌํ ๊ณต๋ถํด์ผ๊ฒ ๋ค. ์ฝ๋์นดํ๋ ๋งค์ผ ํด์ผํ๋๋ฐ ์ฝ์ง ์๋ค.
์ถ์ฒ ํ๋ก๊ทธ๋๋จธ์ค ์ค์ฟจ: ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ