programmers
[Programmers Level 2] 짝지어 제거하기 Javascript
냠냠맨
2022. 12. 27. 02:30
⚡문제정보
같은 글자가 연속으로 들어오면 삭제해주고
모두 제거할 수 있으면 1을 아니면 0을 반환하는 문제입니다.
엥.. 레벨1 짜리 인형뽑기 문제가 더 어려운거같은데요
🔍접근방법
스택을 쓴다.
🔍나의 풀이
function solution(s){
if (s.length % 2 !== 0) return 0;
let stack = [s[0]];
for (let i = 1; i < s.length; i++){
stack.push(s[i]);
if (stack[stack.length-2] === stack[stack.length-1]){
stack.pop()
stack.pop()
}
}
return !stack.length ? 1 : 0;
}
설명은 아래에 서술합니다.
function solution(s){
let stack = [s[0]];
// stack에 s[0]을 넣어줌
for (let i = 1; i < s.length; i++){
stack.push(s[i]);
// stack에 s[i] push
if (stack[stack.length-2] === stack[stack.length-1]){
//만약 stack의 맨뒤와 맨뒤에서 한칸 앞이 같다면
stack.pop()
stack.pop()
//두번 pop해서 제거
}
}
return !stack.length ? 1 : 0;
//stacklength가 0이라면 1 return 아니면 0 return
}
반응형