๋ฌธ์
์ด ๋จ์๋ก ๊ธฐ๋ก๋ ์ฃผ์๊ฐ๊ฒฉ์ด ๋ด๊ธด ๋ฐฐ์ด prices๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ธฐ๊ฐ์ ๋ช ์ด์ธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์. ์ ํ์ฌํญ prices์ ๊ฐ ๊ฐ๊ฒฉ์ 1 ์ด์ 10,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. prices์ ๊ธธ์ด๋ 2 ์ด์ 100,000 ์ดํ์ ๋๋ค. ์ ์ถ๋ ฅ ์ prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] ์ ์ถ๋ ฅ ์ ์ค๋ช 1์ด ์์ ์ โฉ1์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค. 2์ด ์์ ์ โฉ2์ ๋๊น์ง ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค. 3์ด ์์ ์ โฉ3์ 1์ด๋ค์ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง๋๋ค. ๋ฐ๋ผ์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์ ๊ฒ์ผ๋ก ๋ด ๋๋ค. 4์ด ์์ ์ โฉ2์ 1์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค. 5์ด ์์ ์ โฉ3์ 0์ด๊ฐ ๊ฐ๊ฒฉ์ด ๋จ์ด์ง์ง ์์์ต๋๋ค. โป ๊ณต์ง - 2019๋ 2์ 28์ผ ์ง๋ฌธ์ด ๋ฆฌ๋ด์ผ๋์์ต๋๋ค.
ํ์ด
#include <string>
#include <vector>
#include <stack>
using namespace std;
typedef pair<int, int> ci;
vector<int> solution(vector<int> prices) {
int n = prices.size();
vector<int> ans(n);
for(int i=0; i<n; i++) {
ans[i] = n-1-i;
}
stack<ci>s;
for(int i=0; i<n; i++) {
int cur = prices[i];
while(!s.empty() && s.top().second>cur) {
int top_index = s.top().first;
ans[top_index] = i - top_index;
s.pop();
}
s.push({i, cur});
}
return ans;
}
'๐ Cpp > [ํ๋ก๊ทธ๋๋จธ์ค] ๊ณ ๋์ Kit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][C++] K๋ฒ์งธ์ (level1) (0) | 2025.01.05 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][C++] ๋ ๋งต๊ฒ (level2) (2) | 2025.01.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][C++] ์ ํ๋ฒํธ ๋ชฉ๋ก (level2) (0) | 2025.01.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][C++] ๋ชจ์๊ณ ์ฌ (level1) (2) | 2025.01.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][C++] ์ต์์ง์ฌ๊ฐํ (level1) (0) | 2025.01.05 |