문제
Valid Parentheses - LeetCode
Code
class Solution {
public boolean isValid(String s) {
Deque<Character> deque = new ArrayDeque<>();
Map<Character, Character> parenthesesMap = new HashMap<>() {
{
put(')', '(');
put('}', '{');
put(']', '[');
}
};
for (char c : s.toCharArray()) {
if (!parenthesesMap.containsKey(c)) {
deque.push(c);
} else {
if (deque.isEmpty() || parenthesesMap.get(c) != deque.pop()) {
return false;
}
}
}
return deque.isEmpty();
}
}

- parenthesesMap에 닫힘 괄호(key): 열림 괄호(value)의 형태로 저장하였다.
- 주어진 String을 하나씩 보면서 열림 괄호라면 stack에 넣고 아니라면 stack의 마지막 원소를 pop하여 비교하였다.