상세 컨텐츠

본문 제목

[프로그래머스] 괄호 회전하기

💯ProblemSolving/문제 풀이-Java

by :부셔져버린개발자 2024. 12. 10. 13:23

본문

       문제 요약        

- 문제

왼쪽으로 shift한 경우 중,

올바른 괄호 문자열이 되게 하는 갯수 구하기

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

         아이디어        

 

i  = (i + SHIFT_LEN) % 총길이  

 

         소스코드        

 

import java.util.*;
class Solution {
    public int solution(String s) {
        int answer = 0;
        for (int i = 0; i < s.length(); i++) {
            Stack<Character> stack = new Stack<>();
            boolean isAnswer = true;
            for (int len = 0; len < s.length(); len++) {
                int idx = (i + len) % s.length();
                char current = s.charAt(idx);
                if(current == '(' || current == '{' || current == '[') {
                    stack.push(current);                
                } else {
                    if(stack.isEmpty()) {
                        isAnswer = false;
                        break;
                    }
                    char prev = stack.pop();
                    if(!(current == ')' && prev == '(' || 
                      current == '}' && prev == '{' ||
                      current == ']' && prev == '[')) {
                        isAnswer = false;
                        break;
                    } 
                }
            }
            if(!stack.isEmpty()) {
                isAnswer = false;
            }
            if(isAnswer) {
                answer += 1;
            }
        }
        return answer;
    }
}

 

728x90

관련글 더보기