프로그래머스 코딩테스트 연습/Level2
[프로그래머스][JAVA] 괄호 회전하기
긷뚜
2021. 5. 6. 12:39
728x90
programmers.co.kr/learn/courses/30/lessons/76502
코딩테스트 연습 - 괄호 회전하기
programmers.co.kr
기존에 존재하던 많은 올바른 괄호만들기 문제를 응용하는 문제였다
거기에 문자열 회전만 추가하는 문제로 문자열 회전은 앞의 문자를 하나 잘라내 뒤에 다시 붙혀넣는 식으로 풀었다
import java.util.Stack;
class Solution {
public int solution(String s) {
int answer = 0;
for(int i =0;i<s.length();i++){
if(test(s)){answer++;}
s = s.substring(1,s.length()) + s.substring(0,1);
}
return answer;
}
public boolean test(String s){
Stack<Character> st = new Stack<>();
for(int i =0;i<s.length();i++){
char ch = s.charAt(i);
switch(ch){
case '(' : case '{' : case '[':
st.push(ch);
break;
case ')':
if(st.empty()){return false;}
if(st.pop() != '('){return false;}
break;
case '}':
if(st.empty()){return false;}
if(st.pop() != '{'){return false;}
break;
case ']':
if(st.empty()){return false;}
if(st.pop() != '['){return false;}
break;
}
}
if(!st.empty()){return false;}
return true;
}
}
728x90