⚡문제정보
같은 글자가 연속으로 들어오면 삭제해주고
모두 제거할 수 있으면 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
}
반응형
'programmers' 카테고리의 다른 글
[Programmers Level 2] H-index Javascript (0) | 2022.12.31 |
---|---|
[Programmers Level 1] 문자열 나누기 Javascript (0) | 2022.12.30 |
[Programmers Level 2] 영어 끝말잇기 Javascript (0) | 2022.12.25 |
[Programmers Level 1] 크기가 작은 부분 문자열 Javascript (0) | 2022.12.25 |
[Programmers Level 2] 오픈채팅방 Javascript (1) | 2022.12.22 |