티스토리 뷰

Data Structure & Algorithm

JS_쇠막대기

Alledy 2019. 5. 3. 01:10

쇠막대기 문제(스택)

  • 내가 푼 답

    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만 있어도 되어서 제거했다. 알고리즘 풀 때 쓸떼없는 중복을 없애는 것이 중요하다고 느꼈다.

'Data Structure & Algorithm' 카테고리의 다른 글

자바_빠른 A+B  (0) 2019.05.13
JS_스킬트리  (0) 2019.05.03
동적 프로그래밍  (0) 2019.04.08
JS_Cash Register  (0) 2019.04.06
JS_flattenArray  (0) 2019.04.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함