-
[JS/프로그래머스]짝지어 생각하기Coding Test/JavaScript 2023. 7. 10. 21:36
function solution(s) { let arr = s.split(''); for(let i = 0; i < arr.length; i++) { if(arr[i] === arr[i+1]) { arr.splice(i,2) i = -1 } } return arr.length === 0 ? 1 : 0 }
오늘도 효율성 검사에서 막혔다...
흠.. 문자열이 길고 복잡해지면 for문을 너무 많이 돌게 되는 문제가 있는거 같은데..
stack을 써보면 for문을 한번만 돌아도 될 것 같다.
function solution(s) { let stack = []; for(let i = 0; i < s.length; i++) { if(!stack.length || s[i] !== stack[stack.length-1]) { stack.push(s[i]); } else { stack.pop(); } } return stack.length ? 0 : 1; }
이렇게 stack을 이용하면 for문을 한번만 돌아도 된다. 효율성 검사도 모두 통과 된다.
반응형'Coding Test > JavaScript' 카테고리의 다른 글
[프로그래머스/JS] 피보나치 수 (0) 2023.07.12 [JS/프로그래머스] 영어 끝말잇기 (0) 2023.07.11 [JS/프로그래머스] 다음 큰 숫자 (0) 2023.07.09 [JS/프로그래머스] 숫자의 표현 (0) 2023.07.08 [프로그래머스 FE 데브코스/TIL] 단일 연결 리스트 (0) 2023.06.15