programmers_괄호 회전하기_java

2023. 4. 4. 17:11Algorithm/Programmers

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/76502

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        
        int sLength = s.length();
        
        for(int i = 0; i< sLength; i++){
            Stack<Character> stack = new Stack<>();
            int idx = i;
            boolean flag = true;
            for (int j = 0 ; j< sLength; j++){
                switch(s.charAt((idx + j) % sLength)){
                    case '(' : case '[' : case '{' :
                        stack.push( s.charAt((idx + j) % sLength) );
                        break;                        
                    case ')' : 
                        if(!stack.empty() && stack.peek() == '('){
                            stack.pop();
                        }else{
                           flag = false;
                        }
                        break;
                    case ']' : 
                        if(!stack.empty() && stack.peek() == '['){
                            stack.pop();
                        }else{
                           flag = false;
                        }
                        break;
                    case '}' :
                        if(!stack.empty() && stack.peek() == '{'){
                            stack.pop();
                        }else{
                           flag = false;
                        }
                        break;
                }
                if(!flag) break;
            }
            if(flag && stack.isEmpty()) answer++;
        }
        
        return answer;
    }
}

'Algorithm > Programmers' 카테고리의 다른 글

programmers_행렬의 곱셈_java  (0) 2023.04.04
programmers_귤 고르기_java  (0) 2023.04.04
programmers_멀리 뛰기_java  (0) 2023.04.04
programmers_N개의 최소공배수_java  (0) 2023.04.04
programmers_점프와 순간 이동_java  (0) 2023.04.03