728x90
Stack์ ๊ฐ๋ ์ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฐ์ธ ์ ์์๋ ๋ฌธ์ ์ด๋ค.
ํ์ฌ์ ๊ฒ๊ณผ ์ด์ ์ ๊ฒ์ ๋น๊ตํ๊ณ erase ํ๊ฒ ๋๋ ๊ฒฝ์ฐ stack์ ์ฌ์ฉํ๋ฉด ํจ์จ์ฑ ์ธก๋ฉด์์ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = -1;
stack<char> st;
// ๋ฌธ์์ด์ ๊ธธ์ด๋งํผ ๊ฒ์ฌ๋ฅผ ํ๋ค.
for(int i = 0 ; i < s.size() ; i++) {
// stack์ด ๋น์ด์๊ฑฐ๋ ๋ฌธ์์ด์ ํ์ฌ ๋ฌธ์์ top์ด ๊ฐ์ง ์๋ค๋ฉด push๋ฅผ ํ๋ค.
if(st.empty() || st.top() != s[i])
st.push(s[i]);
// top๊ณผ ํ์ฌ ๋ฌธ์๊ฐ ๊ฐ๋ค๋ฉด ์ ๊ฑฐ์ํจ๋ค.
else if(st.top() == s[i])
st.pop();
}
if(st.empty()) return 1;
else return 0;
}
๋ค์์ ํจ์จ์ฑ ๋ฌธ์ ์์ ๋ค ์๊ฐ ์ด๊ณผ๊ฐ ๊ฑธ๋ ธ๋ ๋ด ํ์ด
#include <iostream>
#include<string>
using namespace std;
int solution(string s)
{
int answer = -1;
int len = s.size();
for(int i =0 ; i < len - 1 ; i++) {
if(s[i] == s[i+1]) {
s.erase(i,2);
if(i != 0)
i = i - 2;
else if(i == 0)
i = i - 1;
}
if(s.size() == 0) {
answer = 1;
break;
}
}
if(s.size() != 0) return 0;
else return answer;
}
'๐ Self Study > ๐ Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค (๊ฐ์ฅ ํฐ ์, ์ ๋ ฌ) C++ (0) | 2022.01.04 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค (ํ๋ฆฐํฐ, ์คํ/ํ) C++ (0) | 2022.01.04 |
ํ๋ก๊ทธ๋๋จธ์ค (๊ธฐ๋ฅ ๊ฐ๋ฐ, ์คํ/ํ) C++ (0) | 2022.01.03 |
ํ๋ก๊ทธ๋๋จธ์ค (124 ๋๋ผ, ์ฐ์ต๋ฌธ์ ) C++ (0) | 2022.01.03 |
ํ๋ก๊ทธ๋๋จธ์ค (์คํจ์จ, 2019 KAKAO BLIND RECRUITMENT) C++ (0) | 2022.01.03 |