알고리즘
프로그래머스 올바른 괄호 (JAVA)
박카스마시며코딩
2022. 6. 18. 22:35
https://programmers.co.kr/learn/courses/30/lessons/12909
코딩테스트 연습 - 올바른 괄호
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은
programmers.co.kr
저는 여는 괄호의 개수를 세어 문제를 해결하였습니다.
여는 괄호가 나오면 cnt를 늘려고 닫는 괄호면 cnt를 줄였습니다. cnt가 0 미만으로 떨어지면 그 순간은 )가 하나 더 많은 것이기 때문에 바로 false를 리턴하였습니다.
또한 for문을 다 돌고 cnt가 0이 아니라면 남는 괄호가 존재하는 것이기 때문에 이때도 false를 리턴하였습니다.
class Solution {
boolean solution(String s) {
boolean answer = checkBracket(s);
return answer;
}
private boolean checkBracket(String s){
int size = s.length();
int cnt = 0;
for(int i = 0 ; i < size ; i++){
char now = s.charAt(i);
if(now == '('){
cnt++;
}else{
cnt--;
}
if(cnt < 0){
return false;
}
}
if(cnt != 0){
return false;
}
return true;
}
}