반응형
문제
내 풀이
i가 첫 번째 원소라서 stack에 원소가 하나밖에 없을 때, stack[stack.length - 2]는 undefined 다.
function solution(s) {
const stack = [];
for(let i of s) {
stack.push(i);
if(stack[stack.length - 1] === stack[stack.length - 2]){
stack.pop();
stack.pop();
}
}
return stack.length === 0 ? 1 : 0;
}
(+) 효율성 고려하여 s.length 가 홀수 일 때 return 0 추가 처리하기
function solution(s) {
if(s.length % 2 === 1) return 0;
...
}
(+) for in이나 for of 보다는 for문 형식이 효율성에서 점수가 더 잘 나온다!
다른 풀이
→ string to array 꼭 안해줘도 let val of s 바로 사용할 수 있다.
위의 방법과 동일하게 스택으로 푸는 방법인데,
위의 경우에는 넣고 똑같으면 스택에 있는 걸 두 번 pop하는 방식이고
이 풀이의 경우에는 넣지 않고 안에 있는 것과 비교 후 스택에 있는 걸 한 번만 pop하는 방식이다.
function solution(s) {
var stringToArray = s.split('');
var res = [];
for (var val of stringToArray){
if( val === res[res.length -1]){
res.pop();
} else {
res.push(val)
}
}
return res.length === 0 ? 1 : 0;
}
반응형
'CS > 알고리즘' 카테고리의 다른 글
[230411] 피보나치 수 (0) | 2023.04.11 |
---|---|
[230327] 구명보트: Greedy 알고리즘 (0) | 2023.03.27 |
[230326] 영어 끝말잇기 (0) | 2023.03.26 |
[230326] 다음 큰 숫자 (0) | 2023.03.26 |
[230326] 숫자의 표현 (0) | 2023.03.26 |