
-Code
class Solution {
static Stack<Character> stack;
public boolean isValid(String line) {
// 스텍 사용을 위한 덱 선언
stack = new Stack<>();
// 검사
for (char c : line.toCharArray()) {
if (checkLast(c)) {
// 마지막이랑 맞는 괄호인 경우
stack.pop();
} else {
// 여는 괄호의 경우
stack.push(c);
}
}
// 스텍이 비어있으면 true
return stack.isEmpty();
}
// 마지막 값 체크 로직
private static boolean checkLast(char c) {
// 비어있는 경우 false
if (stack.isEmpty()) return false;
// 아닌 경우 괄호 일치기 true 아닌 경우 false
if (stack.peek() == '(' && c == ')') return true;
else if (stack.peek() == '{' && c == '}') return true;
else if (stack.peek() == '[' && c == ']') return true;
else return false;
}
}'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 34750번 추석은 언제나 좋아 (0) | 2025.11.20 |
|---|---|
| [LeetCode/Java] 21. Merge Two Sorted Lists (0) | 2025.11.19 |
| [백준/Java] 1717번 집합의 표현 (0) | 2025.11.19 |
| [백준/Java] 1707번 이분 그래프 (0) | 2025.11.19 |
| [백준/Java] 34691번 대전과학고등학교를 사랑하십니까? (0) | 2025.11.19 |