코테/프로그래머스
올바른괄호 자바 문제풀이
ekgoddldi
2023. 5. 8. 22:15
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if(c == '(') {
stack.add(c);
} else {
try {
stack.pop();
} catch (EmptyStackException e) {
return false;
}
}
}
return stack.isEmpty();
}
}
문제 출제 의도대로 스택으로 푼다면 반복문이 끝났는데 스택이 비어있지 않거나 반복문 실행하며 pop을 하다가 exception이 발생한다면 올바르지 않은 괄호이다.
class Solution {
boolean solution(String s) {
int temp = 0;
for(char c : s.toCharArray()){
if(c == '(') temp += 1;
else temp -= 1;
if(temp < 0) return false;
}
if(temp == 0) return true;
else return false;
}
}
스택을 안쓰고 +1 -1 을 통해서도 충분히 구현할 수 있다.