codekata week2 / day3

정재성·2022년 5월 18일
0
post-thumbnail

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

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

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

s = "()"
return true

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

s = "(]"
return false

s = "([)]"
return false

s = "{[]}"
return true

function isValid(s) {
  //() {} [] 를 계속 제거하다보면 모든 짝이 맞아서
  //빈 문자열이 될 것이기 때문에 while문을 통해 남지 않을때까지 반복한다
  while(s.includes('()')||s.includes('{}'))
    s=s.replace('()','')
    s=s.replace('{}','')
    s=s.replace('[]','')

  return s == ''? true : false
 //예를들어 "[({})]" {} 없애고 () 없애고 []없앤다
  //"[ { ) }"라면 그대로 남아서 false
}

console.log(isValid('()[]'))

if문 은 조건에 맞을때 1번만 실행되지만 while문은 해당 조건에 해당되는한 계속 반복한다.

profile
기술블로그 / 일상블로그

0개의 댓글