728x90
📍 프로그래머스 2단계 - 짝지어 제거하기
⚡️ 나의 풀이
이전에 한 스타트업의 FE
코딩 테스트를 치렀을 때 지금 문제와 비슷하게 출제되었다. 이 문제의 핵심은 같은 알파벳이 2개 붙어있는 짝을 어떻게 찾는지가 핵심인데, 결론적으로 스택(stack
)을 이용해서 짝을 찾았다.
- 현재
stack
이 비어있지 않고,stack[-1]
이 현재x
와 같으면stack
의 제일 마지막 원소를pop
한다. (짝지어진 문자열이기 때문) - 1번 조건에 충족하지 않으면 모두
stack
에 넣는다. - 주어진 문자열을 끝까지 탐색하고 남은
stack
의 길이가 1보다 크면 짝지어 제거에 실패했기 때문에0
을stack
의 길이가 0이면 짝지어 제거에 성공했기 때문에1
을 리턴한다.
728x90
function solution(s) {
let stack = [];
for (let x of s) {
if (stack && stack[stack.length - 1] === x) {
stack.pop();
}else stack.push(x);
}
return stack.length >= 1 ? 0 : 1;
}
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 모의고사 (0) | 2021.10.21 |
---|---|
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 프린터 (0) | 2021.10.19 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 직사각형 별 찍기 (0) | 2021.08.03 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 가운데 글자 가져오기 (0) | 2021.08.03 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 같은 숫자는 싫어 (0) | 2021.08.03 |
댓글