괄호 체크 문제

정은경·2019년 12월 19일
0

*문제
s는 여러 괄호들로 이루어진 String 인자입니다.
s가 유효한 표현인지 아닌지 true/false로 반환해주세요.

종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다.
아래의 경우 유효합니다.
한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다.
괄호 순서가 맞아야 한다.

예를 들어 아래와 같습니다.

s = "()"
return true

s = "()[]{}"
return true

s = "(]"
return false

s = "([)]"
return false

s = "{[]}"
return true

function isValid(s) {
  left = "([{"
  right = ")]}"
  target_r = ""
  target_l = ""
  flag = 0
  rlt = ""
  
  for(let i=0; i<s.length; i++){
    temp = s[i];
    if(right.indexOf(temp)>-1){
      flag +=1;
    }
    if(left.indexOf(temp)>-1){
      flag=0;
      target_l += temp;
      //console.log(right[left.indexOf(temp)])
      target_r += right[left.indexOf(temp)];
    }
    if(flag===1){
      //console.log(target_r)
      h = target_r.split("").reverse().join("")
      //a= target_r.reverse
      //console.log(a)
      rlt += (target_l + h)
      console.log(rlt)
      target_r=""
      target_l=""
    }
  }
  
  if(s==rlt){
    return true;
  }
  if(s!= rlt){
    return false;
  }
}

s ="([)]"
isValid(s);
profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글