요깨비's LAB

[프로그래머스, JAVA] 올바른 괄호 본문

알고리즘(Java)/프로그래머스

[프로그래머스, JAVA] 올바른 괄호

요깨비 2019. 12. 13. 14:43

Stack을 이용하여 해결하였습니다.
1. 괄호를 한개 읽어온다.
2. (1) '('인 경우 Stack에 PUSH
    (2) ')'인 경우 Stack Size가 0이면 false / 0보다 크면 POP 1번으로 회귀

3. 모든 괄호를 읽었으면 Stack을 체크해서 Stack이 다 비어있으면 올바른 괄호이므로 TRUE
    스택이 비어있지 않으면 ')'의 갯수보다 '('의 갯수가 많은 것이므로 FALSE

import java.util.Stack;

class Solution {
	static Stack<Character> stack = new Stack<>();

	boolean solution(String s) {
		char[] carr = s.toCharArray();
		int carrLen = carr.length;

		for (int i = 0; i < carrLen; i++) {
			if (!checkIsCorrect(carr[i]))
				return false;
		}

		if(stack.size() == 0)
			return true;
		else 
			return false;
	}

	public static boolean checkIsCorrect(char c) {
		if (c == ')') {
			if (stack.size() <= 0) {
				return false;
			}
			stack.pop();
			return true;
		} else if (c == '(') {
			stack.add('(');
			return true;
		} else {
			System.out.println(c);
			System.out.println(" ( 또는 )만 입력 가능합니다!!! ");
			return false;
		}
	}
}

 

Comments