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 을 통해서도 충분히 구현할 수 있다.
'코테 > 프로그래머스' 카테고리의 다른 글
포켓몬 Java 풀이 (0) | 2023.05.04 |
---|---|
완주하지 못한 선수 Java 풀이 (0) | 2023.05.04 |
2023 KAKAO BLIND RECRUITMENT 개인정보 수집 유효기간 (Java.ver) (0) | 2023.05.03 |
[PCCP모의고사] 외톨이 알파벳 (Java ver.) (0) | 2022.12.16 |
[프로그래머스 Lv.2] 카펫 (kotlin ver.) (0) | 2022.12.14 |