본문 바로가기
IT/알고리즘

프로그래머스 쇠막대기 문제(java)

by 어센트 2019. 11. 11.

   public int solution(String arrangement) {
        int answer = 0;
        String temp = arrangement.replace("()", "0");
        Stack s = new Stack<Character>();
        for(int i=0;i<temp.length();i++) {	
        	char t = temp.charAt(i);
        	if(t=='(') {
        		s.push(t);
        	}
        	else if(t=='0') {
        		answer+=s.size();
        	}
        	else if(t==')') {
        		
        		answer++;
        		s.pop();
        	}
        	
        	
        }
        System.out.println(answer);
        
        return answer;
    }

1.()인 경우절단하기 때문에 알아보기 쉽게 '()'를 '0'으로 교체

2.0이 나오면 그전에 쌓아오던 '(' 의 개수를 다 더해주고 ')' 이 나오면 1만 더해주고 팝 

'IT > 알고리즘' 카테고리의 다른 글

프로그래머스 lv2 프린터  (0) 2019.11.19
프로그래머스 lv2 다리를 지나는 트럭  (0) 2019.11.16
프로그래머스 스킬트리(java)  (0) 2019.11.11
프로그래머스 Lv2 주식가격  (0) 2019.10.28
백준 퇴사 문제  (0) 2019.09.26