프로그래머스 짝지어 제거하기
문자열 s가 주어질 때 연속되는 문자가 2개인 짝을 찾아 짝을 제거하고, 남은 문자열을 이어서 계속 연속되는 짝을 제거하는 것을 짝지어 제거라 합니다. 짝지어 제거 결과가 성공적이면 1, 아니면 0을 반환하는 함수를 완성해주세요.
stack 배열을 먼저 만들고, for문으로 s를 탐색하면서 i번째 글자와 다음 글자가 같으면 넘어갑니다. 같지 않다면 stack에 넣어줍니다. 넣어준 후 바로 stack의 마지막 요소와 마지막에서 두번째 요소가 같은지 체크하여 같다면 두 개를 삭제해줍니다. 반복문이 종료되고 stack의 길이가 0이면 1반환, 아니면 0을 반환합니다.
let stack = [];
stack 배열 만들어 줍니다.
for(let i = 0; i< s.length; i++){
if(s[i] === s[i+1]){
i++;
} else {
stack.push(s[i])
if(stack[stack.length-1] === stack[stack.length-2]){
stack.splice(stack.length-2,2);
};
};
};
s
의 i
번째와 i+1
번째가 같다면 i++
해주어 다음 요소로 넘어가게 합니다.stack
배열에 넣고, stack
의 마지막 요소(금방 넣은 요소)와 마지막에서 두번째 요소가 같은지 확인하여 같다면 splice
로 마지막 두 개의 요소를 삭제해 줍니다. return stack.length === 0 ? 1 : 0;
stack의 길이가 0이면 1을 반환, 아니면 0을 반환해줍니다.
function solution(s){
let answer = -1;
let stack = [];
for(let i = 0; i< s.length; i++){
if(s[i] === s[i+1]){
i++;
} else {
stack.push(s[i])
if(stack[stack.length-1] === stack[stack.length-2]){
stack.splice(stack.length-2,2);
};
};
};
return stack.length === 0 ? 1 : 0;
}