x s를 왼쪽으로 x칸만큼 회전 올바른 괄호 문자열?
0 "[]"() {} O
1 "](){}[" X
2 "(){}[]" O
3 "){}[](" X
4 "{}" O
5 "}{" X
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
// 괄호는 열고 닫히는 특성
// boolean
// 오해
// 0, 1 만약에 이거를 다 돌고 끝났을 때
// 0으로 끝나면 정상
// 1로 끝나면 비정상
// 비정상 < 0 > 비정상
String[] sStrArr = s.split("");
List<String> sList = new ArrayList<>();
for (int i = 0; i < sStrArr.length; i++) {
sList.add(sStrArr[i]);
}
for (int i = 0; i < sList.size()-1; i++) {
int small = 0;
int middle = 0;
int large = 0;
for(int j = 0; j < sList.size(); j++) {
if (sList.get(j).equals("(")) {
small++;
} else if (sList.get(j).equals("{")) {
middle++;
} else if (sList.get(j).equals("[")) {
large++;
}
if (sList.get(j).equals(")")) {
small--;
} else if (sList.get(j).equals("}")) {
middle--;
} else if (sList.get(j).equals("]")) {
large--;
}
// 소중대 중 하나라도 0이하로 떨어졌다면?
if (small < 0 || middle < 0 || large < 0) {
break;
}
}
if (small == 0 && middle == 0 && large == 0) {
answer++;
}
// 회전 로직
String tmp = sList.get(0);
sList.remove(0);
sList.add(tmp);
}
return answer;
}
}
class Solution {
public int solution(String s) {
int answer = 0;
String s2 = s;
String s3 = s;
for(int i = 0; i < s.length()-1; i++) {
s3 = s2;
for(int j = 0; j < s.length(); j++) {
s3 = s3.replace("()", "");
s3 = s3.replace("{}", "");
s3 = s3.replace("[]", "");
}
if(s3.length() == 0) {
answer++;
}
s2 = s2.substring(1) + s2.charAt(0);
}
return answer;
}
}