반응형
풀이 과정
이번 문제는 괄호가 올바르게 짝지어졌는지 확인하는 문제다. 스택과 큐중 어떤걸 사용해야할까? 고민하다가 스택으로 풀면 좋을거 같아 스택으로 문제를 풀어 보았다. 먼저 여는 괄호 ' ( ' 를 만나면 스택에 push 하고 닫는 괄호 ' ) '를 만나면 스택에서 pop하여 짝을 맞춰준다. 모든 과정이 끝났을 때 스택이 비어 있어야 올바른 괄호가 완성 되고, 닫는 괄호가 나오기 전에 스택이 비어 있으면 올바르지 않은 괄호이다.
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(') {
stack.push(c);
} else {
if (stack.isEmpty()) {
return false;
}
stack.pop();
}
}
return stack.isEmpty();
}
}