문제 설명
괄호 쌍이 맞도록 잘 닫히면 true 그렇지 않으면 false
풀이 순서
선입후출이기 때문에 Stack을 활용열리는 괄호 확인
push
if(!stack.isEmpty())
쌍을 확인 후 없으면 return false;
열리는 괄호만 있을 경우를 대비해 마지막으로 stack 비었는지 확인
풀이 시작 11:00
풀이 종료 11:17
다시 풀이
내 풀이
다른 사람의 풀이 참고
class Solution {
public boolean isValid(String s) {
Deque<Character> stack = new ArrayDeque<>();
for(char c:s.toCharArray()) {
if(isOpen(c)) {
stack.push(c);
} else {
if(!stack.isEmpty()) {
if((stack.peek() == '(' && c ==')') ||
(stack.peek() == '{' && c == '}') ||
(stack.peek() == '[' && c == ']')) stack.pop();
else
return false;
} else {
return false;
}
}
}
return stack.isEmpty()? true:false;
}
private boolean isOpen(char c) {
return c == '(' || c == '{' || c == '['?true:false;
}
}
새로 알게된 사실
계속 까먹는다!
stack push
queue add
'준비 > 알고리즘 공부' 카테고리의 다른 글
| [스택/큐] 신규 아이디 추천 (0) | 2025.05.19 |
|---|---|
| [스택/큐] daily tempuratures (0) | 2025.05.19 |
| [완전탐색] 전화번호 목록 (0) | 2025.05.15 |
| [완전탐색] 연속된 부분 수열의 합 (0) | 2025.05.13 |
| [완전탐색] 예산 (0) | 2025.05.13 |