import java.util.Stack;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> mystack = new Stack<>();
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == '('){
mystack.push(s.charAt(i));
}else{
if(mystack.isEmpty()){
return false;
}else{
mystack.pop();
}
}
}
return mystack.isEmpty();
}
}
1. Charater형의 Stack을 선언한다.
2. 입력받은 s의 String형 길이만큼 반복문 수행
3. 반복문은 ( 여는 괄호가 들어오면 push
4. ) 닫는 괄호가 들어왔을 때, 스택이 비어 있으면 바로 return false해준다. 그 이유는 비어있을 때 ) 닫는 괄호가 들어왔다는 건 ( 여는 괄호랑 짝이 안맞다는 의미
5. ) 닫는 괄호가 들어왔을 때, 스택이 비어 있지 않으면 ( 여는 괄호랑 짝이 맞는다는 의미기 때문에 pop
6. 마지막으로 스택이 비어있는지의 결과를 return
'📖Algorithm > Simulation, Math' 카테고리의 다른 글
자바 [Programmers] 2단계 - 다음 큰 숫자 (0) | 2024.11.28 |
---|---|
자바 [Programmers] 2단계 - 피보나치 수 (0) | 2024.11.28 |
C++ [Algorithm] - 백준 10810 공 넣기 (0) | 2024.08.06 |
C++ [Algorithm] - Swea 16910 원 안의 점(D3) (0) | 2024.08.05 |
C++ [Algorithm] - 백준 10815 문자열 집합 (0) | 2024.08.01 |