알고리즘/자료구조

올바른 괄호

e-pd 2020. 8. 6. 23:20

https://programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호�

programmers.co.kr

문자를 담을 Character stack을 선언한다.

풀이 입력받은 문자에서 (를 발견하면 push

발견하지 못했다면 pop

 

예외케이스로 처음부터 ( 가 포함되지않는 케이스도 생각해본다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Stack;
import java.util.EmptyStackException;
 
class Solution {
    boolean solution(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '(') {
                stack.push('(');
            } else {
                if (stack.isEmpty()) {
                    return false;
                }
 
                stack.pop();
            }
        }
        return stack.isEmpty();
    }
}
cs