Valid Parentheses ( 5 kyu )

문제

Write a function called that takes a string of parentheses, and determines if the order of the parentheses is valid. The function should return true if the string is valid, and false if it’s invalid.

Examples

"()"              =>  true
")(()))"          =>  false
"("               =>  false
"(())((()())())"  =>  true

Constraints

0 <= input.length <= 100

You may assume that the input string will only contain opening and closing parenthesis and will not be an empty string.

주어진 문자열이 올바른 괄호쌍으로 이루어졌는지 판별하는 문제

풀이

function validParentheses(parens){
  while ( parens.indexOf('()') !== -1 ) {
    parens = parens.slice(0, parens.indexOf('()')).concat(parens.slice(parens.indexOf('()')+2, parens.length))
  }
  return (parens === '')
}

while문으로 ()를 계속해서 지워나가고 문자열이 비었다면 true 남아있다면 false 리턴

다른 사람의 풀이

function validParentheses(parens){
  var indent = 0;

  for (var i = 0 ; i < parens.length && indent >= 0; i++) {
    indent += (parens[i] == '(') ? 1 : -1;    
  }

  return (indent == 0);
}

(면 +1 )면 -1을 더해서 0이면 true를 리턴하는 방법


+ Recent posts