처음엔 boolean으로 )이 나타나면 true, (이 나타나면 false로 바꿔서 짝을 찾으려고 했다. 예시코드 4개는 맞았지만 히든케이스들에서 많이 틀렸다. 그래서 int형으로 )이 나타나면 +1, (이 나타나면 -1해주면서 짝을 찾았다.
import java.io.*;
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack=new Stack<>();
for(int i=0;i<s.length();i++){
stack.push(s.charAt(i));
// System.out.println(stack.pop());
}
int flag = 0;
while(!stack.isEmpty()){
if(flag<=0 && stack.peek()=='('){
flag++;
break;
}
if(stack.peek()=='('){
stack.pop();
flag--;
}else if(stack.peek()==')'){
stack.pop();
flag++;
}
}
if(flag>0) answer=false;
return answer;
}
}
스택을 너무 오랜만에 쓰다보니 어케쓰더라?까먹었었다.
처음부터 다시 찾아보며 공부했다...
큐를 자주 쓰다보니 offer,poll밖에 모른...
스택은 push,pop이다.