음.. 뭐 그렇게 어려운 문제는 아니라고 생각이 듭니다만? 효율성테스트? 요놈에서 막혔네??
class Solution {
boolean solution(String s) {
boolean answer = true;
String[] arr = s.split("");
int cnt=0;
for(int i=0; i<arr.length; i++){
if(arr[i].equals("("))
cnt++;
else{
if(cnt<=0)
return false;
cnt--;
}
}
if(cnt>=1)
return false;
return answer;
}
}
는 스택을 활용해도 계속해서 시간초과가 났다.. 이건 그러면 string.split의 사용때문인건가?
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
// String[] arr = s.split("");
// Stack<String> stack = new Stack<>();
Stack<Character> stack = new Stack<>();
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == '(')
stack.push(s.charAt(i));
else{
if(stack.isEmpty()){
return false;
}else
stack.pop();
}
}
answer = stack.isEmpty() ? true : false;
return answer;
}
}