import java.util.*;

class Solution {
    boolean solution(String s) {
        Stack<Character> stack = new Stack<>();
        if(s.charAt(0) == ')') return false;
        
        for(int i=0 ; i<s.length() ; i++){
            char c = s.charAt(i);
            if(c=='('){
                stack.push(c);
            }
            if(c==')'){
                if(stack.isEmpty()) return false;
                if(stack.peek() == '(') stack.pop();
            }
        }
        return stack.isEmpty();
    }
}
import java.util.Stack;

public class Solution {
    public boolean solution(String s) {
        Stack<Character> stack = new Stack<>();

        for (char c : s.toCharArray()) {
            switch (c) {
                case '(' -> stack.push(c);
                case ')' -> {
                    if (stack.isEmpty()) return false;
                    stack.pop();
                }
            }
        }

        return stack.isEmpty();
    }
}
import java.util.Stack;

public class Solution {
    public boolean solution(String s) {
        int counter = 0;

        for (char c : s.toCharArray()) {
            switch (c) {
                case '(' -> counter++;
                case ')' -> {
                    if (counter-- == 0) return false;
                }
            }
        }

        return counter == 0;
    }
}