akjfal

[Programmers] 괄호 회전하기 본문

알고리즘/programmers

[Programmers] 괄호 회전하기

akjfal 2021. 6. 17. 15:32
// 1. String을 ArrayList로 전환하기
// 2. Index를 이동하며 Stack에 쌓기
// 3. Stack에 쌓인 데이터를 체크하기

import java.util.Stack;
import java.util.ArrayList;
import java.util.Arrays;

class Solution {
    public int solution(String s) {
        int answer = 0;
        ArrayList<String> list = new ArrayList<>(Arrays.asList(s.split("")));
        for(int i = 0; i < list.size(); i++){
            Stack<String> stack = new Stack<>();
            int index = i;
            for(int j = 0; j < list.size(); j++){
                String tmp = list.get(index);
                if(stack.empty()){
                    stack.push(tmp);
                }else if(isPoll(stack.peek(), tmp)){
                    stack.pop();
                }else{
                    stack.push(tmp);
                }
                index++;
                if(index == list.size()){
                    index = 0;
                }
            }
            if(stack.size() == 0){
                answer++;
            }
        }
        return answer;
    }
    
    boolean isPoll(String peek, String next){
        if(peek.equals("{") && next.equals("}"))
            return true;
        if(peek.equals("[") && next.equals("]"))
            return true;
        if(peek.equals("(") && next.equals(")"))
            return true;
        return false;
    }
}

단순구현으로 어려운 문제가 아니였다.

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

[Programmers] 튜플  (0) 2021.06.17
[Programmers] 수식 최대화  (0) 2021.06.17
[Programmers] 예상 대진표도움말  (0) 2021.06.16
[Programmers] 게임 맵 최단거리  (0) 2021.06.16
프로그래머스 42583번 java  (0) 2021.01.15
Comments