-
프로그래머스 > 올바른 괄호기타/알고리즘 2022. 7. 20. 10:46
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
"()()" 또는 "(())()" 는 올바른 괄호입니다.
")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.s answer "()()" true "(())()" true ")()(" false "(()(" false 내 풀이 .
다른 사람은 스택없이 count 변수로 해결함
//올바른 괄호 public static boolean solution3(String s) { boolean answer = false; if(s.charAt(0) == ')') { return answer; } Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { if(s.charAt(i)== '(') { stack.add(s.charAt(i)); } else { if(stack.size()>0) { stack.pop(); } else { return answer; } } } if(stack.size()>0) return answer; else answer = true; return answer; }
다른 사람 풀이
boolean solution(String s) { boolean answer = false; int count = 0; for(int i = 0; i<s.length();i++){ if(s.charAt(i) == '('){ count++; } if(s.charAt(i) == ')'){ count--; } if(count < 0){ break; } } if(count == 0){ answer = true; } return answer; }
반응형'기타 > 알고리즘' 카테고리의 다른 글
삼각달팽이 (0) 2022.08.18 알고리즘 테스트 2 (0) 2022.07.22 프로그래머스 > 폰켓몬 (0) 2022.07.19 코테) 봉우리 (0) 2022.06.28 점수계산 (0) 2022.03.10