쇠막대기 문제(스택)
문제
내가 푼 답
function solution(arrangement) { let count = []; let result = 0; for(let i = 0 ; i < arrangement.length ; i++) { if(arrangement[i] === '(') { if(arrangement[i+1] === ')' && count.length > 0) { count = count.map(e => e + 1); } else if(arrangement[i+1] !== ')') { count.push(0); } } if(arrangement[i+1] === ')' && arrangement[i] !== '(') { result += count[count.length-1] + 1; count.pop(); // 여태까지 계속 스플라이스만 썼는데!!! } } return result; }
문제를 풀다가 알게 된 사실은 내가 마지막 원소를 제거하는 데에 왜 pop()을 안쓰고 splice를 굳이 썼는가…
처음에는 count와 pushArr을 만들어 어레이를 쓸떼없이 두개를 만들었다. 생각해보니 count만 있어도 되어서 제거했다. 알고리즘 풀 때 쓸떼없는 중복을 없애는 것이 중요하다고 느꼈다.