728x90
스택을 이용하면 풀 수 있는 문제이다.
처음에 접근 법은 이랬다.
function solution(s)
{
const stack = [s[0]]
for(let i = 1; i< s.length; i++){
s[i] === stack[i-1] ? stack.pop() : stack.push(s[i])
}
console.log(stack)
return stack.length === 0 ? 1 : 0
}
이유를 살펴보니 a, a를 제거 하고 나서 반복문의 i가 계속 증가하게 되는데
for i === 1 일 때
stack = [b]
s = baabaa 이고
b !== a 이기 때문에 stack에 추가가 된다.
for i === 2 일 때
stack = [b, a]
s = baabaa 이고
a === a 이기 때문에 stack을 pop한다.
for i === 3 일 때
stack = [b]
s = baabaa 이고
b !== undefined 이기 때문에 stack에 추가가 된다.
이러면서 벌어진 문제
수정을 해주자
function solution(s)
{
const stack = [s[0]]
for(let i = 1; i < s.length; i++){
s[i] === stack[stack.length - 1] ? stack.pop() : stack.push(s[i])
}
return stack.length === 0 ? 1 : 0
}
728x90
'코테' 카테고리의 다른 글
큰 수 만들기 (0) | 2022.06.13 |
---|---|
[LeetCode] 617. Merge Two Binary Trees (0) | 2022.06.06 |
[leetcode] 1254. Number of Closed Islands (0) | 2022.06.04 |
[leetCode] 695. Max Area of Island (0) | 2022.06.02 |
애니어그램 (0) | 2022.05.16 |