알고리즘(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;
}
}
}