[Java] Easy to understand Stack Solution (8ms) 
Each time we come across an open paren '(', we add it to the stack.  If we come across a closing paren ')' we check if the stack is empty and if not we pop off 
Each time we come across an open paren '(', we add it to the stack. 

If we come across a closing paren ')' we check if the stack is empty and if not we pop off the open paren.

Else if the stack is empty, we increment the counter for an amend needed.

In the case the stack is not empty when we complete the loop, we continually pop off the remaining items and increment the count till it is.

Solution: 
```
 public int minAddToMakeValid(String S) {
        Stack<Character> stack = new Stack<Character> ();
        int counter = 0;
        for(int i = 0; i < S.length(); i++) {
            char temp = S.charAt(i);
            if(temp == '(') {
                stack.push(temp);
            }
            else if(!stack.isEmpty()) {
                stack.pop();
            }
            else counter++;
        }
        
        while(!stack.isEmpty()) {
            counter ++;
            stack.pop();
        }
        return counter;
    }
		
[]