T_era
[JAVA] 스택 : 올바른 괄호 본문
문제내용

요약
괄호로 이루어진 문자열이 들어왔을 때 ')'는 항상 '('가 나온 이후에 나와야한다
조건이 충족하면 true 그렇지 않으면 false를 반환해라
접근방법
문자를 하나씩 읽어 '('가 나오면 스택에 넣고 ')'가 나오면 스택에서 빼는 과정을 거치면 쉽게 풀릴 것 같다
만약 ')'가 나왔는데 스택이 비어있거나
문자열이 끝났는데 스택이 비어있지 않으면 올바르지 않은 괄호로 판단하면 해결될 것으로 보인다
구현과정
들어온 문자열을 문자형태로 변환하고 스택을 선언
boolean answer = true;
char[] arrs = s.toCharArray();
Stack<Character> stack = new Stack<>();
문자를 하나씩 확인하면서 '('가 나오기전에 ')'가 나오면 false를 반환
문자를 전부 확인한 후에 스택의 상태를 answer를 저장하고 반환하는 코드를 작성
for (Character c : arrs) {
if (stack.isEmpty()) {
if (c == ')') return false;
stack.push(c);
} else {
switch (c) {
case ')': {
stack.pop();
break;
}
case '(': {
stack.push(c);
break;
}
}
}
}
answer = stack.isEmpty();
4.결과

의도한대로 풀리는 것을 확인할 수 있다.
전체코드
import java.util.Stack;
class Solution {
public boolean solution(String s) {
boolean answer = true;
char[] arrs = s.toCharArray();
Stack<Character> stack = new Stack<>();
for (Character c : arrs) {
if (stack.isEmpty()) {
if (c == ')') return false;
stack.push(c);
} else {
switch (c) {
case ')': {
stack.pop();
break;
}
case '(': {
stack.push(c);
break;
}
}
}
}
answer = stack.isEmpty();
return answer;
}
}'Programing > Programers' 카테고리의 다른 글
| [JAVA] 스택 : 주식가격 (0) | 2025.04.21 |
|---|---|
| [JAVA] 큐 : 프로세스 (0) | 2025.04.14 |
| [JAVA] 큐 : 기능개발 (0) | 2025.04.14 |
| [JAVA] 스택 : 같은 숫자는 싫어 (0) | 2025.04.14 |
| [JAVA] 해시 : 베스트앨범 (1) | 2025.04.14 |