문제

  •  문자열 s가 올바른 괄호이면 true, 아니면 false를 반환

풀이

import java.util.*;
import java.io.*;
 
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Deque<Character> dq = new ArrayDeque<>();
        
        for(char c : s.toCharArray()){
            if(!dq.isEmpty()){
                if(c == ')') dq.pollLast();
                else dq.push(c);
            }
            else {
                if(c == ')') return false;
                else dq.push(c);
            }
        }
    
        return dq.isEmpty() ? true : false;
    }
}
 

풀이2

class Solution {
    boolean solution(String s) {
        int cnt = 0;
        for(char c : s.toCharArray()){
            if(c=='(') cnt++;
            else cnt--;
            if(cnt<0) return false;
        }
 
        return cnt > 0 ? false : true;
    }
}