문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
stack 이용해서 푸는 기본 문제라 숙지해두면 좋을 듯하다.
정답
function solution(s) {
s = s.split("");
let i = 0;
let stack = [];
while (i < s.length) {
if (s[i] === stack[stack.length - 1]) {
stack.pop();
} else {
stack.push(s[i]);
}
i++;
}
return stack.length > 0 ? 0 : 1;
}
추가
// 고쳐 바꾸기
let s = "aabcbcdabcabacabcababc";
let t = "abc";
function solution(s, t) {
s = s.split("");
const pattern = t.split("");
let i = 0;
let answer = 0;
let stack = [];
while (i < s.length) {
stack.push(s[i]);
if (stack.length >= pattern.length) {
let matched = true;
for (let j = 0; j < pattern.length; j++) {
if (stack[stack.length - pattern.length + j] !== pattern[j]) {
matched = false;
break;
}
}
if (matched) {
for (let j = 0; j < pattern.length; j++) {
stack.pop();
}
answer++;
}
}
i++;
}
return answer;
}