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
문은 해당 조건에 해당되는한 계속 반복한다.