๋ฌธ์ ๐ฝ
https://school.programmers.co.kr/learn/courses/30/lessons/12973
๋ค๋ฅธ์ฌ๋ ํ์ด ๐ฝ
function solution(s) {
const stack = [];
for (let i = 0; i < s.length; i++) {
if(stack[stack.length - 1] === s[i]) {
stack.pop();
} else {
stack.push(s[i]);
}
}
return !stack.length ? 1 : 0;
}
๋ดํ์ด๐ฝ
1. ์ฒซ๋ฒ์งธ ์๋ -> ์คํจ โ ( ์ถ์ ์์ธ: ์๊ฐ๋ณต์ก๋ ์ต์ ํ ์คํจ )
function solution(s)
{
// ์ฑ๊ณต>return 1
// ์คํจ>return 0
// ๋ฐ๋ณต๋ถ > ํ์ํ๋ฉด์ > [n] =[n+1] ์ด๋ฉด ๋ฐ๋ก ๊ทธ ๋๊ฐ ์ญ์ > ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋๊น์ง ํ์ >
// ํ์์ด ๋๋ฌ๋๋ฐ > length 0์ด๋ฉด > return 1 ์๋๋ฉด return 0
if(s.length%2){
return 0;
}
var answer = 0;
let string = [...s]
let indicator = true;
if(string.length%2==1){
return 0;
}
while(indicator){
if(string.length==0){
answer = 1;
indicator=false;
break;
}
for(let i=0; i<string.length; i++){
if(i==string.length-1){
answer = 0;
indicator=false;
break;
}else{
if(string[i]===string[i+1]){
string.splice(i,2)
break;
}
}
}
}
return answer;
}
2. ๋๋ฒ์งธ ์๋ -> ์ฑ๊ณต โญ
function solution(s)
{
// ๋ฌธ์์ด์ length๊ฐ ํ์๋ฉด ๋ฌด์กฐ๊ฑด return 0;
if(s.length%2){
return 0;
}
var answer = 0;
let string = [...s]
let stack=[]
for(let i=0; i<string.length; i++){
if(stack[stack.length-1]===string[i]){
stack.pop()
}else{
stack.push(string[i])
}
}
return stack.length?0:1;
}
๋๋์ ๐ฝ
์ด์ ์ด๋์ ๋ ๋ก์ง ์์ฑ๊น์ง๋ ๋ง๋ค ์ ์๋๋ฐ ๊ทธ ์ดํ์ ์๊ฐ๋ณต์ก๋๋ฅผ ์ต์ ํ ํ์ง ๋ชปํ๊ณ ์๋ค. ์์ผ๋ก ๊ด๊ฑด์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ต์ ํ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ก๊ณ ํ์ด์ผ ๊ฒ ๋ค. ๊ทธ๋ฆฌ๊ณ splice์ ๋ํ ๊ฐ๋ ์ ๋ค์๊ธ ํ๊ณ ํ๋ ์๊ฐ์ ๊ฐ์ง ์ ์์๋ค.
stack์ ๋ํ ๊ธฐ๋ฒ์ ์ต๋ํ ํ์ฉํ์ฌ ์ฐ์ฐ์๋๋ฅผ ์ค์ด์!!๐๐จ๐
*Array.splice method ( ์ฐธ๊ณ ์ฌํญ - splice ๋ ๋ถ์ด๋ค ๋ผ๋ ์๋ฏธ๋ก ์์ด์์ ์ฌ์ฉ )
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice