- Today
- Total
- ํ๋ก๊ทธ๋๋จธ์ค
- PS
- ์ธํด
- Algorithm
- ์๋ฐ์์ ์
- spring
- ๋ฌธ๋ฒ
- ๊ตฌํ
- BFS
- Graph
- database
- leetcode
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฃ๊ตฌ์กฐ
- MST
- tree
- ๋ฐฑ์ค
- pytorch
- ์๋ฐ
- java
- ๋ฒจ๋งํฌ๋
- ์์์ ๋ ฌ
- ๋ฐฑ์๋
- array
- CS
- ๊ทธ๋ฆฌ๋
- dp
- OOP
- ๋ค์ต์คํธ๋ผ
- ์กธ์ ์ํ
Partially Committed
[ํ๋ก๊ทธ๋๋จธ์ค] ํฐ ์ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํฐ ์ ๋ง๋ค๊ธฐ
WonderJay 2022. 7. 14. 12:22https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=cpp#
์ฒ์์๋ ์์ด์ ์ด์ฉํด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ํ์ํด๊ฐ๋ฉฐ ์ต๋ ์ซ์๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ๋ค. ๊ทผ๋ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ number ๊ธธ์ด๊ฐ ์ต๋ ๋ฐฑ๋ง์ด๋ผ ์๋ง ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ๊ฐ์์ ๋ค๋ฅธ ํ์ด๋ฅผ ํ์ํ๊ณ , ์ฝ๊ฐ์ ๊ตฌ๊ธ๋ง์ ํตํด ์ป์ ์์ด๋์ด๋ก ์๋์ ๊ฐ์ด ๊ตฌํํ์๋ค.
๋จผ์ number ๊ฐ ์ฃผ์ด์ง๋ฉด stack ์ ์ฐจ๊ณก์ฐจ๊ณก ๋ฃ๋๋ค.
์๋ฅผ ๋ค์ด number = 1924, k = 2 ๋ผ๊ณ ๊ฐ์ ํ์.
number ์ ์ํํ๋ฉฐ ๊ฐ ์์๋ฅผ stack ์ ๋ฃ์์ง ๋ง์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
๋งจ ์ฒ์์๋ stack ์ด ๋น์์ ธ์์ผ๋ฏ๋ก ๋ฃ๋๋ค.
-> stack : { 1 }
๊ทธ๋ฆฌ๊ณ k > 0 ์ด๊ณ i < number.size() ์ด๋ฏ๋ก ๋ค์ ์์์ธ 9 ๋ฅผ ๋ฐ๋ผ๋ดค์ ๋ ํ์ฌ stack ์ top ๋ณด๋ค ํฌ๋ค.
๊ทธ๋ฌ๋ฏ๋ก stack.top() ์ด 9 ๋ณด๋ค ํด ๋๊น์ง pop ์ ํ๋ฉฐ, k ๋ฅผ ํ๋์ฉ ์ค์ธ๋ค.
-> stack : { } , k = 1
์คํ์ด ๋น์์ก๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ๋ฅ ๋ฃ๋๋ค.
-> stack : { 9 }, k =1
๋ค์ ์๋ฅผ ํ์ํ๋ค. 2 ๋ 9 ๋ณด๋ค ์์ผ๋ฏ๋ก ๊ทธ๋ฅ ๋ฃ๋๋ค.
stack : { 9 , 2}, k = 1
๋ค์ ์๋ฅผ ๋ณด๋๊น 4์ธ๋ฐ stack.top() ์ธ 2 ๋ณด๋ค ํฌ๋ค.
pop ์ ์ํํ๊ณ k ๋ฅผ ํ๋ ์ค์ธ๋ค.
๊ทธ๋ฌ๋๊น k = 0 ์ด ๋์ด๋ฒ๋ ธ๋ค. ๋ง์ฝ ์ด ์์ ์์ ๋ชจ๋ ์์๋ฅผ ํ์ํ์ง ์์๋ค๋ฉด, ๋ท ์์๋ค์
์ฐจ๋ก๋๋ก ์ฐจ๊ณก์ฐจ๊ณก ์คํ์ push ํด์ค๋ค. ํน์ ๋ชจ๋ ์์๋ฅผ ํ์ํ๋๋ฐ k ๊ฐ 0 ์ด ์๋๋ผ๋ฉด
k ์ ๊ฐ์๋งํผ stack ์ pop ํด์ค๋ค.
์ ๊ณผ์ ์ ๊ฑฐ์น ๋ค์ stack ์ answer ๋ก ์ฎ๊ฒจ์ฃผ๋ฉด ์์ฑ.
[C++]
#include <string>
#include <vector>
#include <stack>
#include <iostream>
#include <algorithm>
using namespace std;
string solution(string number, int k) {
string answer = "";
stack<char> st;
int i = 0;
for(i = 0 ; i < number.size(); i++)
{
if(k==0) break;
if(st.empty()){
st.push(number[i]);
continue;
}
else
{
while(!st.empty()&&st.top() < number[i] && k)
{
st.pop();
k--;
}
st.push(number[i]);
continue;
}
}
while(i!=number.size())
st.push(number[i++]);
while(k>0 && !st.empty())
{
st.pop();
k--;
}
while(!st.empty())
{
answer.push_back(st.top());
st.pop();
}
reverse(answer.begin(), answer.end());
return answer;
}
'๐ฅ Algorithm || ๋ฌธ์ ํ์ด > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ ฌ] ๊ฐ์ฅ ํฐ ์ (JAVA) (0) | 2022.09.02 |
---|---|
[์ ๋ ฌ] K ๋ฒ์งธ์ (JAVA) (0) | 2022.09.02 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2022.07.14 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฅ (0) | 2022.07.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์์ฐพ๊ธฐ (0) | 2022.07.13 |