https://programmers.co.kr/learn/courses/30/lessons/76502
/**
1. s의 길이만큼 회전
1-1) stringBuilder 사용
2. 회전시 해당 문자열이 올바른 괄호 문자열인지 체크
2-1) stack 사용
**/
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
StringBuilder sb = new StringBuilder(s);
for(int i = 0; i < s.length(); i++){
if(check(sb.toString())) answer++;
sb.append(sb.charAt(0));
sb.deleteCharAt(0);
}
return answer;
}
public boolean check(String s){
Stack<Character> stack = new Stack<>();
for(int i = 0; i< s.length(); i++){
if(s.charAt(i) == '[' || s.charAt(i) == '{' || s.charAt(i) == '('){
stack.push(s.charAt(i));
}else{
if(stack.isEmpty()){
return false;
}
char c = stack.peek();
if(c == '[' && s.charAt(i) == ']'){
stack.pop();
}else if(c == '{' && s.charAt(i) == '}'){
stack.pop();
}else if(c == '(' && s.charAt(i) == ')'){
stack.pop();
}else{
return false;
}
}
}
return stack.isEmpty();
}
}
'Algorithm > 프로그래머스풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 프로그래머스 - 광고 삽입 / JAVA(자바) (0) | 2022.02.18 |
---|---|
[알고리즘 문제풀이] 프로그래머스 - 124 나라의 숫자 / JAVA(자바) (0) | 2022.02.18 |
[알고리즘 문제풀이] 프로그래머스 - 수식 최대화 / JAVA(자바) (0) | 2022.01.31 |
[알고리즘 문제풀이] 프로그래머스 - 사라지는 발판 / JAVA(자바) (0) | 2022.01.30 |
[알고리즘 문제풀이] 프로그래머스 - 파괴되지 않은 건물 / JAVA(자바) (0) | 2022.01.30 |
댓글