import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        int len = s.length();
        
        for(int i=0; i<len; i++) {
            Stack<Character> stack = new Stack<>();
            for(int j=0; j<len; j++) {
                char c = s.charAt(j);
                
                if(c=='[' || c=='(' || c=='{') { stack.push(c); }
                else {
                    if(stack.isEmpty()) {
                        stack.push(c);
                        break;
                    } else {
                        if((stack.peek()=='['&&c==']') || (stack.peek()=='('&&c==')') || (stack.peek()=='{'&&c=='}')) {
                            stack.pop();
                        }
                    }
                }
            }
            
            if(stack.isEmpty()) { answer++; }
            
            s = s.substring(1, len)+String.valueOf(s.charAt(0));
        }
        
        return answer;
    }
}

'Problem Solving > Programmers' 카테고리의 다른 글

[Level 2] 다리를 지나는 트럭  (0) 2022.04.06
[Level 2] 위장  (0) 2022.04.06
[Level 2] 예상 대진표  (0) 2022.04.06
[Level 2] 조이스틱  (0) 2022.03.31
[Level 2] 소수 찾기  (0) 2022.03.31