https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=java
조건
제한시간 : 30분 이내
스택을 이용하여,
스택에 가장 최근값을 확인해주면서 괄호 쌍이 맞을 때마다 pop을 해주고
최종적으로 스택에 자료가 남아있다면 올바르지 않은 경우고
스택이 비어있을 경우엔 올바른 경우라 생각하고 로직 구현을 했음.
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stk = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '(') {
stk.push(c);
}else {
if(stk.isEmpty()) return false;
if(stk.peek() == '(') {
stk.pop();
}else {
stk.push(c);
}
}
}
if(!stk.isEmpty()) answer = false;
return answer;
}
}
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 *Java] - 괄호 회전하기 (0) | 2022.07.15 |
---|---|
[프로그래머스 *Java] - 거리두기 확인하기 (0) | 2022.07.13 |
[프로그래머스 *Java] - 예상 대진표 (0) | 2022.07.12 |
[프로그래머스 *Java] - 게임 맵 최단거리 (0) | 2022.07.11 |
[프로그래머스 *Java] - 가장 큰 수 (순열로 접근x -> 런타임 에러 발생) (0) | 2022.07.09 |