알고리즘/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;
}
}
단순구현으로 어려운 문제가 아니였다.