-
Lv2)JS- 짝지어 제거하기공부/프로그래머스 2022. 2. 10. 15:55
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
느낀점
처음에 문제를 while문으로 풀려고 했다가 이건 아닌거 같아서 반복문으로 풀려고 했는데 동일한 문자를 어떻게 처리할까 고민을 많이 했다. 하지만 질문하기에서 실마리를 얻었다. 이번 문제는 Stack으로 풀면 해결할 수 있을 거라는 것을 그래서 Stack으로 문제를 접근했는데 효율성 2번이 통과가 되지 않았다.
아직 원인은 찾지 못했다. 내가 생각할때 문자열과 배열의 차이라고 생각이 들지만 정확한 부분은 아직 모르겠다.
테스트 케이스의 오류일수 있을까???
내가 푼 방법
function solution(s) { let arr = []; if (s.length % 2 !== 0) { return 0; } //효율성 2 통과 x let str = s.slice().split(""); for(let el of str){ if(el===arr[arr.length-1]){ arr.pop(); }else{ arr.push(el); } } return arr.length === 0 ? 1 : 0; }
다른 방법
function solution(s) { let arr = []; if (s.length % 2 !== 0) { return 0; } for (let el of s) { if (el === arr[arr.length - 1]) { arr.pop(); } else { arr.push(el); } } return arr.length === 0 ? 1 : 0; }
reference
'공부 > 프로그래머스' 카테고리의 다른 글
Lv2)JS - 영어 끝말잇기 (0) 2022.02.22 Lv2)JS - N개의 최소공배수 (0) 2022.02.13 Lv2)JS - 행렬의 곱셈 (0) 2022.02.10 Lv2)JS - 타겟넘버 (0) 2022.02.08 Lv2)JS - 기능개발 (0) 2022.02.07